专利摘要:
本発明は、チップレベルのJTAGテストに新しいハードウェア記述言語を提供する。新しいBSDL(NSDL)と呼ばれる、この新しいハードウェア記述言語は、システムオンチップのテストリソースが記述されることを可能にし、それによって、システムオンチップのテストを円滑にするように、システムオンチップが記述されることを可能にする。本発明は、システムオンチップを記述するためのボトムアップ手法を提供する。本発明は、システムオンチップの構成要素のそれぞれのアルゴリズム記述をサポートし、かつシステムオンチップの構成要素同士の間の相互接続のアルゴリズム記述をサポートし、それによって、システムオンチップ全体のアルゴリズム記述またはシステムオンチップの一部のアルゴリズム記述の生成を可能にする。
公开号:JP2011505643A
申请号:JP2010536913
申请日:2008-11-25
公开日:2011-02-24
发明作者:トルーレン,ブラッドフォード,ジーン ヴァン;ゴヤール,スレシュ;チャクラボーティ,タパン,ジョーティ;チャン,チェン−ファン;ポートラン,ミシェル
申请人:アルカテル−ルーセント ユーエスエー インコーポレーテッド;
IPC主号:G06F11-22
专利说明:

[0001] 本発明は、プリント回路基板の分野に関し、より詳細には、プリント回路基板のテストに関する。]
背景技術

[0002] ジョイント・テスト・アクション・グループ(Joint Test Action Group)(JTAG)は、バウンダリスキャンを使用してプリント回路基板をテストするためのテストアクセスポートに関するIEEE1149標準を指す。JTAGは、プリント回路基板をテストするために、自動テスト生成(ATG)ツールによって使用される。バウンダリスキャン記述言語(Boundary Scan Description Language)(BSDL)は、基板レベルのJTAGに関するIEEE1149.1標準の一部として開発されており、さらに、階層化スキャン記述言語(Hierarchical Scan Description Language)(HSDL)は、BSDLの拡張として開発されている。BSDL/HSDLは、基板上または基板の構成要素上で利用可能なリソースを記述する(この場合、HSDLは、その他の構成要素から構成される構成要素を記述する)。BSDL/HSDLは基板レベルのJTAGに関して効率的であるものの、基板レベルのJTAGからチップレベルのJTAGへの推移は、BSDL/HSDLの限界を強調する。]
[0003] 命令JTAG(IJTAG)は、基板レベルのJTAGからチップレベルのJTAGへの移行に関連する既存のJTAG限界を克服するために標準化されている(P1687標準として示される)が、IJTAGに関連する進行中の作業は、BSDL/HSDLが、チップレベルのJTAGテストに関する記述要件を満たすことが可能でないことを明らかにした。BSDL/HSDLは、バウンダリスキャンレジスタを構成しているセルの順序付けられたリストに依存するが、かかる静的記述は、IJTAGにおいて求められる複雑な動的スキャンチェーンを記述するのに適していない。さらに、BSDL/HSDLは、システムのそれぞれの構成要素に関して必要とされるテスト手順を記述するための任意のスペースを提供することができない。]
課題を解決するための手段

[0004] 本発明は、チップレベルのJTAGテストに新しいハードウェア記述言語を提供する。新しいBSDL(NSDL)と呼ばれる、この新しいハードウェア記述言語は、システムオンチップのテストリソースが記述されることを可能にし、それによって、システムオンチップのテストを円滑にするように、システムオンチップが記述されることを可能にする。本発明は、システムオンチップを記述するためのボトムアップ手法を提供する。本発明は、システムオンチップの構成要素のそれぞれのアルゴリズム記述をサポートし、かつシステムオンチップの構成要素同士の間の相互接続のアルゴリズム記述をサポートし、それによって、システムオンチップ全体のアルゴリズム記述またはシステムオンチップの一部のアルゴリズム記述の生成を可能にする。]
[0005] 一実施形態では、複数の相互接続によって相互接続された複数の構成要素を有するシステムオンチップをテストするための方法が提供される。1つのかかる実施形態では、この方法は、システムオンチップのそれぞれの構成要素のアルゴリズム記述を受信するステップと、システムオンチップの構成要素同士の間の複数の相互接続のアルゴリズム記述を受信するステップと、構成要素のアルゴリズム記述および相互接続のアルゴリズム記述を使用して、システムオンチップのアルゴリズム記述を受信するステップと、システムオンチップのアルゴリズム記述を格納するステップとを含む。]
[0006] 一実施形態では、構成要素が少なくとも1個のレジスタを含む、システムオンチップの構成要素をテストするための方法が提供される。1つのかかる実施形態では、この方法は、構成要素のアルゴリズム記述を受信するステップであって、その構成要素によってサポートされた少なくとも1つの機能のそれぞれに関して、アルゴリズム記述が、その構成要素の少なくとも1個のレジスタに関する少なくとも1つのレジスタ値へのその機能のマッピングを定義する、受信するステップと、構成要素のアルゴリズム記述を格納するステップとを含む。この方法は、システムオンチップの構成要素のそれぞれに関して繰り返されることが可能である。]
[0007] 本発明の教示は、添付の図面と共に、以下の詳細な説明を考慮することによって容易に理解され得る。]
図面の簡単な説明

[0008] テスト環境のハイレベルブロック図である。
図1のテスト環境のシステムオンチップのハイレベルブロック図である。
「アクセスなし」構成要素の入出力知識を示す図である。
「限定されたアクセス」構成要素または「完全なアクセス」構成要素の入出力知識を示す図である。
構成要素の内部スキャンパスのスライスの明示的な参照を示す図である。
クロスロードデバイスの表示のハイレベルブロック図である。
システムオンチップのスキャンパスを動的に修正するための一般的なクロスロードデバイスの使用のハイレベルブロック図である。
NSDLを使用して記述され得る1つのクロスロードデバイスのハイレベルブロック図である。
NSDLを使用して記述され得る1つのクロスロードデバイスのハイレベルブロック図である。
NSDLを使用して記述され得る1つのクロスロードデバイスのハイレベルブロック図である。
図1のテスト環境のテストシステムのハイレベルブロック図である。
JTAG接続を介してシステムをテストするために、図1のテストシステムによって実行される例示的な方法を示す図である。
JTAG接続を介してシステムをテストするために、図1のテストシステムによって実行される例示的な方法を示す図である。
JTAG接続を介してシステムをテストするために、図1のテストシステムによって実行される例示的な方法を示す図である。
図2のシステムオンチップの構成要素のうちの1つをテストするためのテスト手順に関するレジスタビット値を決定するための構成要素の記述の使用を示す図である。
図2のシステムオンチップの構成(composition)のうちの1つをテストするためのテスト手順に関するビットストリームを決定するための、図2のシステムオンチップの構成の記述の使用を示す図である。
IJTAG/NSDLフレームワーク内のシステムの構成要素をテストするための、図1のテストシステムによって実行される例示的な方法を示す図である。
例示的なシステムオンチップのハイレベルブロック図である。
図18のシステムオンチップの構成要素のうちの1つをテストするためのテスト手順に関するレジスタビット値を決定するための構成要素の記述の使用を示す図である。
図18のシステムオンチップの構成の記述を決定するための、図18のシステムオンチップの構成要素の記述の使用を示す図である。
並列アクセスインターフェースの一般的な接続方式のハイレベルブロック図である。
2つの例示的な並列アクセス接続方式を示すハイレベルブロック図である。
例示的なテスト環境のハイレベルブロック図である。
図23Aの例示的なテスト環境におけるデータフローのハイレベルブロック図である。
システムオンチップの並列ポートとコアとの間の例示的な接続のハイレベルブロック図である。
システムオンチップの並列ポートとコアとの間の例示的な接続のハイレベルブロック図である。
システムオンチップの並列ポートとコアとの間の例示的な接続のハイレベルブロック図である。
システムオンチップの並列ポートとコアとの間の例示的な接続のハイレベルブロック図である。
並列アクセスインターフェースの内部接続方式のハイレベルブロック図である。
システムオンチップのテストリソースを記述するための方法を示す図である。
本明細書で説明される機能を実行する際に使用するのに適した汎用コンピュータのハイレベルブロック図である。] 図1 図18 図2 図23A
実施例

[0009] 理解を円滑にする目的で、図面に共通の同一の要素を指定するために、可能な場合、同一の参照番号が使用されている。]
[0010] 本明細書で説明されるように、命令JTAG(IJTAG)は、基板レベルのJTAGテストからチップレベルのJTAGテストへの移行に関連する既存のJTAG限界を克服するために標準化されている(P1687標準、または、その代わりにIJTAGとして示される)が、IJTAGに関連する進行中の作業は、BSDL/HSDLが、チップレベルのバウンダリスキャンに関する記述要件を満たすことが可能でないことを明らかにした。本発明は、チップレベルのJTAGテストに関するBSDL/HSDLの限界を克服する新しいハードウェア記述言語を提供する。この新しいハードウェア記述言語は、本明細書において、新しいBSDL(NSDL)と呼ばれる。このNSDL言語は、システムオンチップのテストリソースの記述を可能にし、それによって、システムオンチップのテストを円滑にする。NSDL記述言語の多数の利点は、以下のNSDLの説明から理解され得る。]
[0011] 本明細書で説明されるように、新しいハードウェア記述言語、NSDLは、JTAGベースのテストにおいて追加の進歩も可能にする。NSDL記述言語は、システムオンチップデバイスのテストを円滑にするために、いわゆる「クロスロードデバイス」の使用を可能にする。クロスロードデバイスは、システムオンチップのシステムスキャンパスの動的修正を可能にする。NSDL記述言語は、システムオンチップデバイスのテストを円滑にするために、並列アクセスの使用も可能にする。システムオンチップデバイスに対する並列アクセスは、多くの様式で提供されることが可能である。さらに、かかる進歩はNSDL記述言語によって可能にされているが、かかる進歩は、後に開発され得るその他の記述言語に関して利用されることも可能である点に留意されたい。]
[0012] ハードウェア開発プロセスにおいて、3人の主な関係者が存在する。すなわち、デバイスプロバイダ、システム設計者、およびテストエンジニアである。デバイスプロバイダは、特定のデバイスを作成する。システム設計者は、システムを構成するために、デバイスプロバイダによって提供されたデバイスを使用する。テストエンジニアは、システムが適切に機能していることを確実にするために、システムをテストする(例えば、システムのデバイス同士の間の相互接続、デバイスの機能、システムの機能などをテストする)。NSDL言語は、(例えば、そのデバイスを記述するために)デバイスプロバイダによって使用されることが可能であり、(例えば、システムを構成する際に)システム設計者によって使用されることが可能であり、(例えば、システムをテストする際に)システム試験者によって使用されることが可能である。したがって、NSDL言語は、ハードウェア開発プロセスの全体にわたって使用されることが期待される。]
[0013] システムオンチップ開発プロセスにおいて、システムが構成されるデバイスは、「ソフト」デバイス、すなわち、何らかのハードウェア記述言語でのデバイスの記述であり得る。このプロセスでは、システム設計者は、最終的に、テストエンジニアによってテストされるシステムオンチップを取得するために、システムレベル開発フローにおいて、ソフトデバイスをシステムレベルコードと統合する。(例えば、デバイスの数、デバイス同士の間の相互接続、デバイス内依存、デバイス間依存などの点から)システムオンチップの複雑さが高まると、システムオンチップをテストする複雑さが高まる。NSDL言語は、どんな複雑さのシステムオンチップデバイスも容易に記述されることを可能にし、したがって、テストされることを可能にする。]
[0014] 図1は、テスト環境のハイレベルブロック図を示す。詳細には、テスト環境100は、システムオンチップ(S−o−C)110と、テストシステム(TS)120とを含む。TS120は、S−o−C110をテストする(例えば、(構成要素の機能を含めて)S−o−C110の個々の構成要素、S−o−C110上のデバイス同士の間の相互接続、S−o−C110のシステムレベル機能など、ならびにそれらの様々な組合せをテストする)。TS120は、(TDIポートとして示される)入力ポート115Iおよび(TDOポートとして示される)出力ポート115Oを含むテストアクセスポート(TAP)115を経由してS−o−C110をテストする。] 図1
[0015] 一実施形態では、P1687環境において、TAP115は、IEEE1149.1標準によって記述される。本明細書において、TDIポート115IおよびTDOポート115Oを使用して主に示され、かつ説明されるが、TAP115は、(分かりやすくするために省略されている)TCKポート、TMSポート、および、オプションで、TRSTポートなど、その他の制御ポートを含むことが可能である。さらに、IEEE1149.1標準によって記述されるTAPに関して主に示され、かつ説明されるが、TAP115は、様々なその他のポート(例えば、その他の標準によって記述されるポートなど、ならびにそれらの様々な組合せ)を利用することが可能である。]
[0016] TS120は、テスト手順を使用して、S−o−C110のテストを実行する。TS120は、1つまたは複数のテスト手順を使用して、1つまたは複数のテストを実行することが可能である。テスト手順は、構成要素の一部(例えば、構成要素の機能、構成要素の機能のセット、構成要素内依存など)、構成要素、構成要素のグループ(例えば、構成要素同士の間の相互接続、構成要素間依存など)、1つまたは複数のシステムレベル機能など、ならびにそれらの様々な組合せ)をテストするために使用されることが可能である。]
[0017] TS120は、S−o−C110をテストするためのテスト手順を生成する。テスト手順は、S−o−C110をテストするために求められる情報を指定する。S−o−C110向けのテスト手順は、(S−o−C110の個々の構成要素のそれぞれの記述、ならびに、S−o−C110のシステムレベルの記述を含めて)S−o−C110の記述を指定することが可能である。テスト手順は、入力テストベクトルおよび期待される出力テストベクトルを指定することが可能である。テスト手順は、テストに関して求められる推定時間、テストに関する出力データ処理(例えば、ロギング、エラートリガリング(error triggering)、回復動作など)など、ならびにそれらの様々な組合せ)など、テストに関連するその他の情報を含み得る。]
[0018] TS120は、(S−o−C110の個々の構成要素のそれぞれの記述、ならびに、S−o−C110のシステムレベルの記述を含めて)S−o−C110の記述を使用してS−o−C110をテストするためのテスト手順を生成する。S−o−C110の個々の構成要素の記述は、NSDLを使用して指定され得る。個々の構成要素の記述は、構成要素の内部スキャンパスを記述することが可能である。S−o−C110のシステムレベルの記述は、NSDLを使用して指定され得る。S−o−C110のシステムレベルの記述は、S−o−C110のトポロジ(例えば、構成要素同士の間の相互接続、構成要素間依存など)を記述することが可能である。]
[0019] (個々の構成要素の記述、システムレベルの記述などを含めて)S−o−C110に関する記述情報は、S−o−C110に関するテスト手順を生成する際に使用するように適合された情報を含む。例えば、記述情報は、スキャンパス長情報、スキャンパス階層情報など、ならびにそれらの様々な組合せを決定するために処理され得る、構成要素スキャンパス情報、システムトポロジ情報などを含む。S−o−C110に関する記述情報は、本明細書で説明される任意のその他の記述情報を含み得る。]
[0020] TS120は、S−o−C110上で1つまたは複数のテスト手順を実行することによって、S−o−C110をテストする。TS120は、それぞれのテストが実行されるように、入力ビットストリームおよび期待されるテスト結果(例えば、期待される出力ビット値または出力ビットストリーム)を生成する。TS120は、(入力テストベクトルと呼ばれる)入力ビットストリームをTDIポート115Iに提供して、(出力テストベクトルと呼ばれる)対応する出力ビットストリームをTDOポート115Oから受信する。TS120は、テストの結果を決定するために、実際の出力ビットストリームを期待される出力ビットストリームと比較する。TS120は、テスト結果を格納することが可能である。]
[0021] TS120は、S−o−C110をテストするための1つまたは複数のテスト手順を実行することが可能である。TS120は(異なるスケジューリング決定が、結果として、テスト手順の同じセットに関して、異なるテスト完了時間をもたらすことになるため)総テスト時間を最小限に抑えるように複数のテスト手順の実行を組織することが可能である。TS120は、テストスケジュール(すなわち、それに従ってテスト手順が実行されなければならない順序を指定するスケジュール)を指定することが可能である。TS120は、システムオンチップのテストに関連する様々なその他の機能を実行することが可能である。]
[0022] 図2は、図1のテスト環境のシステムオンチップのハイレベルブロック図を示す。図2に示されるように、S−o−C110は、複数の構成要素相互接続220(集合的に、構成要素相互接続220)によって相互接続された複数の構成要素210A〜210E(集合的に、構成要素210)を含む。] 図1 図2
[0023] 構成要素210は、システムオンチップシステム内に含まれることが可能な任意の構成要素を含み得る。構成要素210は、NSDLを使用して記述されることが可能である。構成要素210は、本明細書でテストリソースと呼ばれる場合もある。]
[0024] 一実施形態では、P1687標準によるシステムにおいて、構成要素210は、IP、計器(instruments)、および/または計器選択ビット(select instrument bits)(SIB)を含み得る。]
[0025] 知的財産(IP)デバイスは、テストを必要としている通常のデバイスである。]
[0026] 計器は、テストを必要とする以外に、テストを支援するように適合された機能性(例えば、値の読み取り、値の監視、有用な情報の提供など、ならびにそれらの様々な組合せ)を提供するデバイスである。例えば、計器は、寿命加速テストをパラメータ化するために使用されることになる温度センサーの出力であり得る。例えば、計器は、ソフトウェア定義された無線の獲得段階に関して調整可能なフィルタを較正するために使用されるセンサーの基準値であり得る。すなわち、計器は、初期のシステムテストの間、ならびに、システムの寿命の全体の両方でテストを支援することが可能である。]
[0027] IP/計器は非常に類似する可能性があるという点で、これら2つの用語は、本明細書において、交換可能に使用されることが可能である。さらに、IPおよび計器は、システムオンチップの構成要素として使用されることが可能であるため、IPおよび計器は、本明細書において、より一般に、構成要素と呼ばれる場合がある。]
[0028] IP/計器は、階層化スキャンパスを含み得る。階層化スキャンパスを有する構成要素は、構成要素がシステム内に導入されるときシステムスキャンパスの一部になる内部スキャンパスを含む。]
[0029] SIBは、(どの1つまたは複数のデバイスがテストにおいて使用されることになるかに応じて)スキャンパスの一部がスキャンパス内に動的に含まれること、またはスキャンパスから動的に除去されることを可能にする階層化スキャンパスセルである。SIBは、P1687標準の現在の草案のハードウェア提案の一部を形成する。]
[0030] 一般に、階層は、システムオンチップの構成要素のテストを改善する。例えば、階層は、テストの間にアクティブなシステムスキャンパスの最小化と構成要素の隔離とを可能にし、それによって、システムオンチップの構成要素に対するアクセス時間を削減する)。]
[0031] その他の実施形態では、その他の標準によるシステムにおいて、構成要素210は、その他のタイプの構成要素を含み得る。]
[0032] 一実施形態では、構成要素210は、1つまたは複数のクロスロードデバイスを含み得る。システムオンチップテストにおけるクロスロードデバイスの使用は、NSDL言語の使用によって可能にされる(すなわち、大部分のかかるデバイスは、BSDL/HSDLによって記述されていることが可能でない)。システムオンチップテストにおけるクロスロードデバイスの使用は、図6〜図10に関してよりよく理解され得る。] 図10 図6 図7 図8 図9
[0033] 図2に示すように、構成要素210のそれぞれは、複数の内部レジスタを含む。詳細には、構成要素210Aは3個のレジスタ(A0,A1,A2)を含み、構成要素210Bは6個のレジスタ(B0,B1,B2,B3,B4,B5)を含み、構成要素210Cは5個のレジスタ(C0,C1,C2,C3,C4)を含み、構成要素210Dは3個のレジスタ(D0,D1,D2)を含み、構成要素210Eは4個のレジスタ(E0,E1,E2,E3)を含む。それぞれの構成要素210のレジスタは、その構成要素210に関する内部スキャンパスを形成する。それぞれの構成要素210の内部スキャンパスは、NSDLを使用して記述されることが可能である。] 図2
[0034] 図2に示すように、構成要素210のそれぞれは、少なくとも1つの機能をサポートする。詳細には、構成要素210Aは3つの機能をサポートし、構成要素210Bは4つの機能をサポートし、構成要素210Cは3つの機能をサポートし、構成要素210Dは2つの機能をサポートし、構成要素210Eは1つの機能をサポートする。構成要素210のそれぞれによってサポートされるこれらの機能は、それぞれ、構成要素210のそれぞれのレジスタ(すなわち、内部スキャンパス)を利用する。したがって、構成要素210のそれぞれによってサポートされる機能は、NSDLを使用して記述されることが可能である。] 図2
[0035] 図2に示すように、S−o−C110の構成要素210は、S−o−C110の構成要素相互接続220を経由して接続される。構成要素210(すなわち、構成要素210の内部スキャンパス)および構成要素210同士の間の構成要素相互接続220は、S−o−C110の入力テストポート(TDI)からS−o−C110の出力テストポート(TDO)へのシステムスキャンパス(すなわち、パス)を形成する。このシステムスキャンパスは、(例えば、それによって、NSDLに基づくシステム全体の記述を形成するために、NSDLを使用して個々の構成要素のそれぞれを定義し、NSDLを使用してシステムの構成を定義することによって)NSDLを使用して定義され得る。] 図2
[0036] 本明細書で説明されるように、(すなわち、構成要素210、構成要素相互接続220、構成要素内依存および構成要素間依存などのそれぞれが相関するアルゴリズムの収集物を使用する際に記述されるため)NSDLに基づくS−o−C110のシステム全体の記述は、アルゴリズム記述である。S−o−C110のアルゴリズム記述は、S−o−C110をテストする際にTS120による使用のために適合された情報(例えば、スキャンパス長情報、スキャンパス階層情報など、ならびにそれらの様々な組合せ)を含む。]
[0037] システムオンチップは、システムオンチップの構成要素のそれぞれを記述すること(例えば、IP、計器、(使用される場合)クロスロードデバイスなど、およびそれらの様々な組合せの記述)と、(システムオンチップの構成要素のそれぞれの間の相互接続、構成要素内依存および構成要素間依存など、ならびにそれらの様々な組合せの記述を含めて)システムオンチップのトポロジを記述することとによって記述されることが可能である。]
[0038] 一実施形態では、構成要素がIP、計器、および/または計器選択ビット(SIB)を含む、P1687標準によるシステムでは、システムオンチップの記述は、(例えば、内部レジスタの意味、適用/監視するための手順/ビットストリームのセットなどを含めて)それぞれのIP/計器の記述、(SIBが使用される場合)それぞれのSIBの記述、システムスキャンパスの構成の記述(すなわち、それぞれの構成要素の内部スキャンパスがどのように構成要素を通過するかなどを含めて、スキャンパスがシステムオンチップをどのように通過するか)など、ならびにそれらの様々な組合せを必要とする。]
[0039] スキャンチェーン内にIPを挿入することは、スキャンチェーンを介したIPのテストを可能にする。システムオンチップ内のIPの使用は、IPに関するアクセス特権レベル(APL)(例えば、アクセスなし、限定されたアクセス、完全なアクセス)に応じて異なる。]
[0040] IPに関するAPLが「アクセスなし」である場合、テストツールはIPの内部の知識を有さず、したがって、IPのプロバイダによって提供された情報に依存しなければならない。例えば、IPに関するビットストリームのセット(すなわち、入力ビットストリームおよび期待される出力ビットストリーム)が提供されなければならない。この場合、これらのビットストリームは、静的ビットストリームと見なされる。テストツールは、IPに関する静的入力ビットストリームをシステムオンチップに関するシステムビットストリーム内に挿入して、IPのプロバイダによって指定されたように、対応する出力ビットストリームを処理しなければならない。]
[0041] IPに関するAPLが「完全なアクセス」である場合、テストツールは、NSDL内に記述されたIPの内部スキャンチェーン、および選り抜きの記述言語でのIPのソースの両方を含めて、IPの内部の完全な知識を有する。この場合、テストツールは、(例えば、その独自のアルゴリズムを使用して)IPに関して求められる入力ビットストリームおよび期待される出力ビットストリームを直接的に演算することが可能であり、またはIPのプロバイダは、(例えば、静的ビットストリームおよび/または動的ビットストリームとして)事前に演算されたビットストリームのセットを提供することが可能である。]
[0042] IPに関するAPLが「限定されたアクセス」である場合、テストツールは、IPの内部の限定された知識だけを有する。IPのNSDL記述が提供される。IPのNSDL記述は、IPの内部スキャンチェーンの記述と、IPをテストするために使用され得る手順のセットとを含む。この場合、テストツールは、IPをテストする際に使用するためのビットストリーム(例えば、入力ビットストリームおよび期待される出力ビットストリーム)を生成するために、IPの記述を使用する。]
[0043] 計器をシステムオンチップ内に挿入することは、ある値またはある条件の検査を介したシステムオンチップのテストを可能にする。計器は、テスト目的で使用され得る1つまたは複数の機能をサポートすることが可能である。したがって、IPの記述は、IPをテストするために必要とされる手順のセットだけを含むものの、計器の記述は、計器の機能にアクセスするために使用され得る手順(および/またはビットストリーム)のセットも含む。計器の記述は、計器が構成されるレジスタのレジスタ値の点から、計器の機能の記述を含み得る。したがって、NSDLを使用すると、IPと計器との間の唯一の違いは、手順のセットである。]
[0044] IPおよび計器に関して本明細書で説明されるように、IPおよび計器の記述は、手順を使用して指定されることが可能である。手順は、手順が呼び出されるたびに実行されることになるアトミック命令(atomic instructions)の連結と見なされることが可能である。]
[0045] IP/計器に関する手順の記述は、IP/計器のAPLに依存し得る。]
[0046] 構成要素のAPLが「アクセスなし」である場合、これらの手順は、ビットストリーム値(すなわち、スキャンパス内に書き込まれることになる値およびスキャンパスから読み取られることになる値)として表されることが可能である。]
[0047] 構成要素のAPLが「限定されたアクセス」または「完全なアクセス」である場合、IP/計器のスキャンパスの知識は、これらの手順が構成され得るように、IP/計器に関する手順の表示に関して追加の自由を提供する。手順の空間構成は、システムオンチップのシステムスキャンパスの入出力を構成するために、異なる手順の入出力がどのように使用され得るかを示す。時間構成は、特定の動作を実行するために、同じ構成要素(例えば、IP/計器)に対して手順がどのように連続して適用され得るかを示す。加えて、手順は、より大きな手順および/もしくは複数のより小さな手順に入れ子にされること、ならびに/またはより大きな手順および/もしくは複数のより小さな手順から入れ子にされることが可能である。]
[0048] 手順は手順属性(すなわち、手順の記述)と手順本体とを含む。手順の記述は、長さ、ビジーモード指示、入力条件、終了条件、依存、内部スキャンパス記述など、ならびにそれらの様々な組合せなどの情報を含み得る。]
[0049] 固定長手順は、実行されるのに常に同じ時間量がかかる手順と定義され得る。可変長手順は、実行されるのに可変の時間量がかかる手順と定義され得る。可変長手順は、その他の時間値(例えば、最善の時間および最悪の時間、平均時間など、ならびにそれらの様々な組合せ)を使用して定義されることが可能である。一実施形態では、それぞれの可変長手順に関して、少なくとも1つの終了条件が提供されなければならない。]
[0050] 手順の長さは、サイクル(または、サイクルを用いた表現が可能でない場合、秒または何らかのその他の時間単位など、何らかのその他の絶対項)を用いて表されることが可能である。例えば、物理的な計測を行う計器、非同期計器、非同期クロック領域で動作している計器などの場合、サイクルを用いて手順の長さを表すことは可能でない。手順の長さが時間で表される場合、テストツールは(例えば、実際のテストクロック期間の知識を用いて)サイクルカウントを決定することが可能であり、または(例えば、基準クロック周期を使用して)サイクルカウントを推定することが可能である。]
[0051] 手順ビジーモードが手順によって宣言されるべきである。手順の実行の間に、スキャンチェーンの値が変化してはならない(すなわち、それぞれのスキャンアクセスがその値を同じ値にリセットしなければならない)場合、手順のビジーモードは「保留」である。例えば、「保留」計器は、組合せデバイスであり得る(すなわち、この場合、それぞれの修正が結果に影響を及ぼす)。手順の実行の間に、スキャンチェーンの値が重要でない場合、手順のビジーモードは「注意無用(don’t care)」である。例えば、「注意無用」計器は、トリガされたときだけ入力をサンプリングする任意のデバイスであり得る。]
[0052] システムオンチップの記述は、そのシステムオンチップに関連する依存の記述も含む。システムオンチップの依存は、(システムオンチップの1つの構成要素の機能同士または手順同士の間の)構成要素内依存、および(システムオンチップの異なる構成要素の機能同士または手順同士の間の)構成要素間依存を含む。依存の記述は、(例えば、それらをリストアップすること、名称ベースでリンクさせることなど、ならびにそれらの様々な組合せによって)多くの形で指定され得る。]
[0053] 例えば、機能Xがリストアップされた副機能のそれぞれが完了するまで、その実行を開始できないことを意味する「機能Xは、機能X1,X2,...,Xnの完了に依存する」という表示を介して記述されることが可能である。例えば、手順Xは、多くの理由で、手順Yは手順Xが実行される前に完了されなければならないことを意味する「手順Xは、手順Yに依存する」という表示を介して記述されることが可能である。システムオンチップの依存は、様々なその他の形で記述されることが可能である。]
[0054] システムオンチップの構成要素内依存および構成要素間依存が宣言されるべきである。依存の宣言は、テストツールがテストスケジューリングを実行することを可能にする。一実施形態では、依存は、依存の(1つまたは複数の)手順の宣言的部分の一部として宣言されることが可能である。一実施形態では、依存は、明示的な名前付けを使用して宣言されることが可能である。1つのかかる実施形態では、外部依存をその外部依存が関連する構成要素の(1つまたは複数の)記号名とリンクさせるために、汎用パラメータが利用され得る。]
[0055] NSDLを使用すると、依存の記述および宣言は、様々なその他の形で実行されることが可能である。]
[0056] 構成要素(または、複数の構成要素のグループ)に関する1つの手順(または、複数の手順)の構成は、(1つもしくは複数の)構成要素の(1つもしくは複数の)APLに基づいて変化し、これは、その構成要素に関連する入出力情報の知識に影響を及ぼす。]
[0057] 図3は、「アクセスなし」構成要素300の入出力知識を示す。構成要素のAPLが「アクセスなし」である場合、その構成要素によってサポートされるそれぞれの機能に関して、機能の本体は、(入力ビットストリームを構成するために使用されることになる)入力ビットストリーム情報、関数の長さ情報およびスキャンパス長さ情報、ならびに出力ビットストリーム情報(例えば、期待される出力ビットストリーム、求められる出力ビットストリーム処理など、ならびにそれらの様々な組合せ)から構成されることになる。] 図3
[0058] 図4は、「限定されたアクセス」構成要素または「完全なアクセス」構成要素400の入出力知識を示す。構成要素のAPLが「限定されたアクセス」または「完全なアクセス」である場合、構成要素の内部スキャンパスは知られている(すなわち、構成要素のレジスタのそれぞれ、ならびに、レジスタのトポロジは知られている)。構成要素の内部スキャンパスは、1つまたは複数の階層レベル上で配信され得る複数のスライスに区分化されることが可能である。異なる階層レベルに対するアクセスは、(例えば、隣接レベルの1つまたは複数のレジスタを使用して)いかなるようにも制御され得る。構成要素の内部スキャンパスをいくつかの階層レベルに区分化することは、図4に関して示され、かつ説明される構成要素に関してよりよく理解され得る。] 図4
[0059] 図4に示されるように、内部スキャンパスは(スライス1、2、3、4、5として示される)5つのスライスに区分化される。内部スキャンパスの5つのスライスは、(レベル0、1として示される)2つの階層レベル上で配信される。スライス1、2、3、4、および5は、それぞれ、4個のレジスタ、4個のレジスタ、3個のレジスタ、3個のレジスタ、および2個のレジスタで構成される。スライス1、2、および5は、階層レベル0内に配置される。スライス3および4は、階層レベル1内に配置される。(レジスタH1として示される)レジスタは、内部スキャンパス階層レベル0とレベル1との間のアクセスを制御する。H1レジスタは、スライス3および4が迂回される(すなわち、これらのスライスが内部スキャンパスから排除される)ように、またはスライス3および4が迂回されない(すなわち、これらのスライスが内部スキャンパス内に含まれる)ように内部スキャンパスを制御する。] 図4
[0060] 図4に示されるように、内部スキャンパスは以下のように構成される。スライス1の入力はTDIであり、スライス1の出力はスライス2の入力である。スライス2の入力は、スライス1の出力であり、スライス2の出力は、H1(レベル0入力)に対する第1の入力である。レベル0において、H1の入力は、スライス2の出力であり、H1の出力は、スライス5の入力である。レベル1において、H1の出力は、スライス3の入力であり、H1の入力は、スライス4の出力である。スライス3の入力は、H1の出力(レベル1の出力)であり、スライス3の出力は、スライス4の入力である。スライス4の入力は、スライス3の出力であり、スライス4の出力は、H1の入力(レベル1の入力)である。スライス5の入力は、H1の出力(レベル0の出力)であり、スライス5の出力はTDOである。] 図4
[0061] 一実施形態では、構成要素の内部スキャンパスを複数のスライスに区分化することは、機能的である、すなわち、内部スキャンパスのそれぞれのスライスは、その上で動作している1つまたは複数のスライス機能を有し、それらのスライスのそれぞれは、そのそれぞれがテストツールによって独立してスケジュール可能な1つまたは複数のスライス手順を使用してテストされることが可能である。この実施形態では、内部スキャンパスの所与のスライス上で動作している機能の本体は、「アクセスなし」構成要素の機能の本体の構成に類似した形で構成され得る(すなわち、機能の本体は、入力ビットストリーム情報、関数の長さ情報およびスキャンパス長情報、出力ビットストリーム情報など、ならびにそれらの様々な組合せを使用して説明される)。]
[0062] したがって、内部スキャンパスの異なるスライスまたはスライスの組合せを用いて動作している異なる手順を利用して、構成要素の内部スキャンパスの区分化は、様々な形で使用されることが可能である。例えば(図4を参照すると)、スライス1に関連する第1の手順P1は、データをスライス1内に書き込むために実行されることが可能であり、それによって、構成要素内のいくつかの機能の実行をトリガし、これは、結果として、結果データをスライス2内に格納し、エラーデータをスライス5内に格納する。次いで、それぞれ、スライス2および5の値を読み取るために(それぞれ、スライス2および5の上で動作している)2つの追加の手順P2およびP5が実行され得る。したがって、(複数の階層レベルの全域で区分化することを含めて)内部スキャンパスをスライスに区分化することは、システムオンチップテストにおいて大きな柔軟性を提供する。TS120は、アルゴリズム手順を直列テストビットストリーム(例えば、入力ビットストリームおよび期待される出力ビットストリーム)に容易に変換することが可能である。] 図4
[0063] 構成要素の内部スキャンパスのスライスを利用するために異なる手順が開発され得るため、内部スキャンパスのスライスを利用する手順は、(その中の信号を含めて)スライスを参照することが可能でなければならない。手順は、スライスをいかなるようにも参照することが可能である。一実施形態では、例えば、手順は、明示的な名前付けを使用してスライスを参照することが可能である。1つのかかる実施形態では、それぞれのスライス(すなわち、レジスタまたはレジスタのグループ)に独自の名前が割り当てられ、それによって、階層的にインスタンスが作成された(instantiated)スライスが記録のようにアクセスされることを可能にする。構成要素のスライスを識別するために明示的な名前付けを使用する例は、図5に関して示され、かつ説明される。] 図5
[0064] 図5は、構成要素500の内部スキャンパスのスライスの明示的な参照を示す。図5に示されるように、構成要素500は、そのそれぞれが、独自の名前によって参照される6つのスライスを有する12個のレジスタスキャンパスを含む。第1のスライスは、BS_0と名付けられた単一のレジスタである。第2のスライスは、BS_1と名付けられた単一のレジスタである。第3のスライスは、BS_0、BS_1、BS_2、およびBS_3と名付けられた4個のレジスタを含む、SCAN_4_BIT_0と名付けられた4個のレジスタの直列チェーンである。第4のスライスは、BS_0、BS_1、BS_2、およびBS_3と名付けられた4個のレジスタを含む、Another_SCAN_4_BITと名付けられた4個のレジスタの直列チェーンである。第5のスライスは、BS_2と名付けられた単一のレジスタである。第6のスライスは、BS_3と名付けられた単一のレジスタである。] 図5
[0065] 本明細書で説明されるように、階層的にインスタンスが作成されたレジスタは、記録のようにアクセスされることが可能である。例えば、矢印1によって示されるレジスタの独自の名前はBS_1である(2個のその他のレジスタがBS_1と名付けられているが、階層的な名前付けの使用がレジスタの独自の名前付けをどのように確実にするかを理解されよう)。例えば、矢印2によって示されるスライス(すなわち、レジスタのグループ)の独自の名前は、SCAN_4_BIT_0である。例えば、矢印3によって示されるレジスタの独自の名前は、another_SCAN_4_BIT.BS_1である。すなわち、内部スキャンパスのそれぞれのスライス、ならびに、それぞれのスライスのそれぞれのレジスタは、スライスおよびレジスタの任意の数の階層レベルに関して、独自の名前を使用して参照されることが可能である。]
[0066] 本明細書において、構成要素に関する手順または手順のセットを定義するために利用され得る特定の手順属性(例えば、手順の長さ、機能依存および手順依存、内部スキャンパス記述、スライス記述、スライス基準属性など)に関して主に示され、かつ説明されるが、様々なその他の手順属性が指定され得る。手順を記述するために使用される手順属性は、システムオンチップテストをサポートするように手順を記述するために使用されることが可能な任意の情報を含み得る。]
[0067] 手順属性に加えて、手順は手順本体を含む。手順本体は、手順の詳細を含む。手順本体は、いかなるようにも実装され得る。手順本体は、スキャンパスの概念を有さない(むしろ、アクセスは、スライス上で並行して行われ、テストツールはこれらの動作をシステムスキャンパスに対するアクセスに融合する)。手順本体は、様々な文、主張、入れ子にされた手順など、ならびにそれらの様々な組合せを使用することが可能である。]
[0068] VHDL言語を使用して実装されたNSDLを使用してシステムオンチップが記述される(したがって、システムオンチップに関連する手順のそれぞれがVHDL言語を使用して実装されたNSDLを使用して記述される)一実施形態では、手順本体は、VHDL構文を使用して表現されることが可能である。手順の手順本体は、システムオンチップの記述の実装形態に応じて、その他の形で表現されることが可能である。]
[0069] 構成要素の内部スキャンパスの記述は、NSDLによって容易に提供される。NSDLでは、それぞれのレジスタセルはエンティティと見なされ、レジスタセルは、(例えば、NSDLがVHDLのスーパーセットとして実装されるとき、VHDL規則を使用して)パッケージにグループ化されることが可能である。NSDLでは、それぞれのレジスタエンティティは、2つの汎用パラメータ、すなわち、レジスタインスタンスを明示的に参照することによって、スキャンパスを表現するために使用され得る「precedent(先行部分)」および「following(後続部分)」を使用して記述される。レジスタエンティティの「precedent」パラメータは、そのレジスタエンティティに対する入力のソースを指定する。レジスタエンティティの「following」パラメータは、そのレジスタエンティティからの出力の宛先を指定する。したがって、レジスタエンティティは、単一のレジスタ、(階層的グループ化を含めて)レジスタのグループなどを含み得る。]
[0070] 構成要素の内部スキャンパスの記述は、図5に関して示され、かつ説明される内部スキャンチェーンに対応する以下のサンプルコードに関してよりよく理解され得る。] 図5
[0071] 以下のサンプルコードは、直列に配置された4個の基本的なバウンダリスキャンレジスタを含む簡単なスキャンパスを示し、この場合、第1のバウンダリスキャンレジスタは、TDIポートから入力を受信し、第4のバウンダリスキャンレジスタはTDOポートに出力を提供する。]
[0072] BS_0: BS generic map (precedent => "TDI", following => "BS_1");
BS_1: BS generic map (precedent => "BS_0", following => "BS_2");
BS_2: BS generic map (precedent => "BS_1", following => "BS_3");
BS_3: BS generic map (precedent => "BS_2", following => "TDO");]
[0073] この4個のレジスタスキャンチェーンは、エンティティ内にカプセル化されて、階層的にインスタンスが作成されることが可能である。以下のサンプルコードは、(SCAN_4_BIT_0レジスタエンティティ、およびanother_SCAN_4_BITレジスタエンティティを記述する際に最終的に使用するために)この4個のレジスタスキャンチェーンが正にどのようにエンティティ内にカプセル化されて、階層的にインスタンスが作成されることが可能であるかを示す。]
[0074] EntitySCAN_4_BIT is
Generic (precedent : string := "TDI"; following : string := "TDO");
End entity;
Architecture A of SCAN_4_BIT is
begin
BS_0: BS generic map (precedent => precedent, following => "BS_1");
BS_1: BS generic map (precedent => "BS_0", following => "BS_2");
BS_2: BS generic map (precedent => "BS_1", following => "BS_3");
BS_3: BS generic map (precedent => "BS_2", following => following);
end;]
[0075] 以下のサンプルコードは、(図5に関して示され、かつ説明されたように、12個のレジスタスキャンパスが、4個の個々のレジスタと、4個のレジスタレジスタスキャンチェーンから構成される2つのレジスタエンティティとを含めて、6つのレジスタエンティティの記述を使用して表される)図5の12個のレジスタスキャンパスの表示(記述)を示す。] 図5
[0076] BS_0: BS generic map (precedent => "TDI", following => "BS_1 ");
BS_1: BS generic map (precedent => "BS_0", following => "SCAN_4_BIT_0");
SCAN_4_BIT_0: BS generic map (precedent => "BS_1", following =>
"another_SCAN_4_BIT");
another_SCAN_4_BIT: BS generic map (precedent => "SCAN_4_BIT_0",
following => "BS_2");
BS_2: BS generic map (precedent => "another_SCAN_4_BIT", following => "BS_3");
BS_3: BS generic map (precedent => "BS_2", following => "TDO");]
[0077] このタイプの記述情報を使用すると、スキャンパスに関する情報(例えば、その長さ、その階層構造など、ならびにそれらの様々な組合せ)は、(例えば、文脈上の検査を使用して)コンパイル時にテストツールによって自動的に演算されることが可能である。さらに、レジスタエンティティの記述は、(例えば、その他の設計における使用に関して)極めて再利用可能である。レジスタエンティティに関する記述情報は、多くの異なる形で収集、格納、および検査されることが可能であるため(すなわち、記号表の実装は、例えば、ハッシュテーブル、データベースなどの点から、コンパイラ同士の間でかなり異なる場合があるため)、かかる詳細は、分かりやすくするために、かつ一般性のために省略される。]
[0078] さらに、このタイプの記述を使用すると、システムオンチップのそれぞれの構成要素は容易に記述されるため、システムオンチップのシステム全体の記述は、(構成要素同士の間の相互接続の記述、構成要素間依存の記述など、ならびにそれらの様々な組合せを含めて)個々の構成要素の記述を組み合わせることによって取得されることが可能である。すなわち、NSDLは、システムオンチップ構成を記述する(かつ、したがって、テストする)際にかなりの柔軟性を提供する。]
[0079] 本明細書で説明されるように、システムオンチップのスキャンパスの一部を形成する一般的な構成要素を記述することが可能であることに加えて、NSDLは、システムオンチップのスキャンパスに対する動的変更を可能にするデバイスを記述することも可能である。このタイプのデバイスは、NSDL用語において「クロスロードデバイス」と呼ばれる。クロスロードデバイスの一般的な表示は、図6に関して示され、かつ説明される。] 図6
[0080] 図6は、クロスロードデバイスの表示のハイレベルブロック図を示す。詳細には、クロスロードデバイス表示600は、システムオンチップのスキャンパスを動的に修正することが可能なクロスロードデバイスを表す。クロスロードデバイスは、(アフルエント(affluents)と呼ばれる)1つまたは複数の入力を(トリビュタリ(tributaries)と呼ばれる)1つまたは複数の出力に経路指定する。図6に示されるように、クロスロードデバイス表示600は、(path_in_0からpath_in_mとして示される)複数のアフルエントと(path_out_0からpath_out_nとして示される)複数のトリビュタリとを含む。] 図6
[0081] システムオンチップをテストする際にクロスロードデバイスを使用するために、クロスロードデバイスは記述されなければならない。クロスロードデバイスの(1つまたは複数の)動的に可変なスキャンパスの記述は、特に静的なスキャンパスを処理するように設計されたBSDL/HSDLを使用することを達成することが(不可能でない場合)非常に困難である。対照的に、クロスロードデバイスの(1つまたは複数の)動的に可変なスキャンパスの記述は、テストツールによって容易に理解されるクロスロードデバイスのアルゴリズム記述を提供するNSDLによって容易に提供される。]
[0082] NSDLを使用したクロスロードデバイスの一般的な記述が続く。]
[0083] IP is
Generic(
precedent : string := "TDI";
following : string := "TDO";
affluent : string := "deselected";
tributary : string := "deselected";
);
End ;]
[0084] 上に提示されたクロスロードデバイスの一般的な記述から理解されるように、汎用パラメータ「affluent」および「tributary」は、階層化スキャンパスにアクセスするために使用されることが可能である。汎用パラメータ「affluent」および「tributary」は、クロスロードデバイスがスキャンパス内の通過構成要素として単に動作する(すなわち、アフルエントとトリビュタリはアクティブではなく、したがって、スキャンパスを動的に修正しない)ように、当初「deselected(選択解除された)」に設定される。クロスロードデバイスは、相対的な選択機能を呼び出すために「affluent」パラメータおよび「tributary」パラメータを使用することによって、スキャンパスを動的に修正するためにアクティブ化されることが可能である。]
[0085] 2つ以上のアフルエントおよび/または2つ以上のトリビュタリが存在する場合、アフルエントおよび/またはトリビュタリのそれぞれは、独自に識別されなければならない。一実施形態では、例えば、簡単な順序数(例えば、アフルエントに関して、affluent_0、affluent_1など、トリビュタリに関して、tributary_0、tributary_1など)が使用され得る。このNSDLベースの記述を使用して、テストツールは、汎用パラメータを単に参照することによって、クロスロードデバイスを介した接続を理解することが可能である。]
[0086] クロスロードデバイスの記述は、いかなるようにも生成され得る。一実施形態では、クロスロードデバイスの記述は、システムオンチップの1つの構成要素(または、複数の構成要素)に対するアクセスを動的に制御するように適合されたアーキテクチャを経由して相互接続された入力接続のセットおよび出力接続のセットの記述を使用して生成される。クロスロードデバイスの記述は、テストの際に使用するために格納され得る。プロセッサは、テストを実行する際に使用するために、(例えば、メモリから、別のシステムから、または、かかる記述の任意のその他のソースから)クロスロードデバイスの記述を受信することまたは取り出すことが可能である。]
[0087] 本明細書で説明されるように、入力接続のセットは、(TDIからの方向に、システムオンチップのスキャンパスに接続された)スキャンパス入力接続と、(構成要素アクセス入力接続として示される)構成要素に対する少なくとも1つの接続とを含み、出力接続のセットは、(TDOに向けた方向に、システムオンチップのスキャンパスに接続された)スキャンパス出力接続と、(構成要素アクセス出力接続として示される)構成要素に対する少なくとも1つの接続とを含む。]
[0088] 一実施形態では、入力接続のセットは、(スキャンパス入力接続に関する)「precedent」パラメータと、(1つまたは複数の構成要素アクセス入力接続に関する)1つまたは複数の「affluent」パラメータとを使用して指定される。一実施形態では、出力接続のセットは、(スキャンパス出力接続に関する)「following」パラメータと、(1つまたは複数の構成要素アクセス出力接続に関する)1つまたは複数の「affluent」パラメータとを使用して指定される。]
[0089] クロスロードデバイスは、システムスキャンパスをいかなるようにも動的に修正することが可能である。このアーキテクチャは、構成要素を経由して、入力接続のセットのうちのいくつかを出力接続のセットのうちのいくつかと動的に接続するための任意のアーキテクチャであってよく、この場合、クロスロードデバイスは、構成要素をシステムスキャンパスに加えるために選択される。例えば、このアーキテクチャは、切替アーキテクチャ、バスアーキテクチャ、ネットワークアーキテクチャなどであり得る。]
[0090] 一実施形態では、クロスロードデバイスの記述は、ツールをテストすることによって理解されているように適合された、少なくとも1つの構成規則(compositional rule)を含むアルゴリズム記述である。クロスロードデバイスの記述は、(例えば、「affluent」パラメータおよび「tributary」パラメータを修正することによって)構成要素をスキャンパスに動的に加え、構成要素をスキャンパスから動的に除去するように動的に修正されることが可能である。]
[0091] システムオンチップテストにおいてテストリソースを記述するためにNSDLを使用することは、クロスロードデバイスがシステムオンチップテストにおいて使用されることを可能にするように、多くの異なるクロスロードデバイスが記述されることを可能にする。NSDLによって記述され得る異なるクロスロードデバイスは、3つの広い範疇にグループ化され得る。詳細には、クロスロードデバイスは、「有線」接続、「トランザクション」接続、または「有線トランザクション」接続を表すことが可能である。]
[0092] 「有線」クロスロードデバイスは、システムオンチップのスキャンパス内に基本的に有線接続される(かつ、必要に応じて、選択または選択解除され得る)クロスロードデバイスである。「有線」クロスロードデバイスは、切替に類似した形で動作する(すなわち、接続は、必要に応じて、アフルエントとトリビュタリとの間で動的にプログラムされることが可能である)。「有線」クロスロードデバイスのスキャンパスはシステムオンチップのシステムスキャンパス内に有線接続されるため、「有線」クロスロードデバイスのスキャンパスは、明示的に選択解除される必要がある。「有線」クロスロードデバイスの第1の実施例(詳細には、P1687ハードウェア提案の一部である、計器選択ビット(SIB)構成要素)が図8に示され、かつ説明される。「有線」クロスロードデバイスの第2の実施例は、図9に示され、かつ説明される。] 図8 図9
[0093] 「トランザクション」クロスロードデバイスは、一時的な接続(すなわち、特定のトランザクションを表す接続)をサポートするクロスロードデバイスである。「トランザクション」クロスロードデバイスは、任意のアーキテクチャ(例えば、バス、ネットワークオンチップなど)として動作することが可能である。トランザクションは、「トランザクション」クロスロードデバイスのアーキテクチャによってサポートされ得る任意のトランザクション(例えば、バスアーキテクチャにおけるバスアクセス、ネットワークアーキテクチャにおけるルーティングなど)であり得る。「トランザクション」クロスロードデバイスのスキャンパスはトランザクションのときだけアクティブであるため、「トランザクション」クロスロードデバイスのスキャンパスは、明示的に選択解除される必要はない。「トランザクション」クロスロードデバイスの実施例は、図10に示され、かつ説明される。] 図10
[0094] 「有線」クロスロードデバイスにおいて、少なくとも1つの構成要素アクセス入力接続および少なくとも1つの構成要素アクセス入力接続は、有線接続である。したがって、(1つまたは複数の)構成要素アクセス入力接続および(1つまたは複数の)構成要素アクセス出力接続は、異なる物理接続である。「トランザクション」クロスロードデバイスにおいて、少なくとも1つの構成要素アクセス入力接続および少なくとも1つの構成要素アクセス入力接続は、複数のトランザクションをサポートするために、1つの物理接続が使用され得るようなトランザクション接続である(すなわち、(1つまたは複数の)構成要素アクセス入力接続および(1つまたは複数の)構成要素アクセス出力接続は、同じ物理接続を共有することが可能であるが、異なるトランザクション接続と見なされ得る)。]
[0095] BSDL/HSDLを使用すると、特定の「有線」クロスロードデバイス(すなわち、SIB構成要素)を記述することが可能であるものの、この記述は非常に困難である。さらに、BSDL/HSDLを使用した、より複雑な「有線」クロスロードデバイスの記述は、可能でない場合がある。さらに、BSDL/HSDLを使用した「トランザクション」クロスロードデバイスおよび「有線トランザクション」クロスロードデバイスの記述は、可能でない可能性が高い。したがって、このために、P1687において標準化されているクロスロードデバイスだけがSIB構成要素である。]
[0096] 対照的に、NSDLを使用すると、任意の「有線」クロスロードデバイス、「トランザクション」クロスロードデバイス、および「有線トランザクション」クロスロードデバイスの記述が明らかにサポートされ、テストツールによって容易に解釈される。確かに、事実上、システムオンチップのスキャンパスを動的に修正することが可能な、どんな複雑さのいかなるクロスロードデバイスも、NSDLを使用して記述されることが可能である。NSDLの能力を例示するために、クロスロードデバイス(および、NSDLを使用して表現されるそのそれぞれの記述)の少数の例は、本明細書において、図7〜10に関して提供される。] 図10 図7 図8 図9
[0097] 図7は、システムオンチップのスキャンパスを動的に修正するための、汎用クロスロードデバイスの使用のハイレベルブロック図を示す。図7に示されるように、システムオンチップ700は、汎用クロスロードデバイス710を含むスキャンパスを含む。スキャンパスは、2つの固定スキャンパス部分(すなわち、常にスキャンパス内に含まれることが意図される部分)と、オプションのスキャンパス部分(すなわち、クロスロードデバイス710によってスキャンパス内に動的に含まれること、およびスキャンパス内から動的に除去されることが可能な部分)とを含む。] 図7
[0098] 図7に示されるように、システムオンチップ700のスキャンパスにおいて、テストアクセス入力(TDI)は、(一連のバウンダリスキャンセルを含む)第1の固定スキャンパス部分に結合され、第1の固定スキャンパス部分は、クロスロードデバイス710の第1の入力(すなわち、先行部分)に結合され、クロスロードデバイス710の第1の出力(すなわち、後続部分)は、第2の固定スキャンパス部分に結合され、第2の固定スキャンパス部分は、テストアクセス出力(TDO)に結合される。] 図7
[0099] クロスロードデバイス710は、システムオンチップ700のスキャンパスに対するオプションのスキャンパス部分の動的な(選択的な)組込みを可能にする。詳細には、クロスロードデバイス710は、第1の固定スキャンパス部分の出力をオプションのスキャンパス部分の入力に結合するために選択され得る第2の出力(すなわち、トリビュタリ)を含み、オプションのスキャンパス部分の出力を第2の固定スキャンパス部分の入力に結合するために選択され得る第2の入力(すなわち、アフルエント)を含む。]
[0100] クロスロードデバイス710は、入出力の特定の組合せを選択すること/選択解除することによって、スキャンパスが動的に修正されることを可能にする。クロスロードデバイス710の第2の出力および第2の入力が選択解除されるとき、スキャンパスは、TDI、SCAN_4_BIT_0、BS_0、BS_1、クロスロードデバイス710、BS_2、TDOである。クロスロードデバイス710の第2の出力および第2の入力が選択されるとき(すなわち、第1の入力が第2の出力に接続されて、第2の入力が第1の出力に接続されるとき)、スキャンパスは、TDI、SCAN_4_BIT_0、BS_0、BS_1、クロスロードデバイス710、another_SCAN_4_BIT、BS_3、クロスロードデバイス710、BS_2、TDOである。]
[0101] 図8は、NSDLを使用して記述され得る1つのクロスロードデバイスのハイレベルブロック図を示す。詳細には、図8は、SIBデバイス800を示す。SIBデバイス800は、(すなわち、構成要素がスキャンパスに加えられるように)別の構成要素の選択を可能にする。] 図8
[0102] SIBデバイスは、選択ビットによって制御される。選択ビットの値が「0」のとき、セルはアクティブではない(セルは、正にスキャンパスの内部のビットである)。選択ビットの値が「1」に設定されたとき、スキャンパスは、ポートWSIo(すなわち、トリビュタリ)を介して外部に経路指定され、ポートWSOi(すなわち、アフルエント)を介して内部に経路指定され、それによって、それらのポートが接続される任意のデバイスをスキャンパスに加える。]
[0103] (分かりやすくするために行番号を加えた状態で)SIBデバイス800のNSDLベースの記述が続く。]
[0104] 1 IP SIB generic (precedent : string := "TDI";
2 following : string := "TDO";
3 tributary : string := "deselected";
4 affluent : string:= "deselected")
5 Begin
6 Up SIB : REG generic map (precedent =>"TDI",
7 following=>"TDO"
8 elements =>1);
9
10 Procedure select
11 Length 1;
12 Selection wired;
13 {
14 Up Sib <=‘1’;
15 tributary:= "TDI";
16 affluent:= "TDO";
17 }
18
19 Procedure deselect
20 Length 1 ;
21 Selection wired;
22 {
23 Up Sib <=‘0’;
24 tributary :="deselected";
25 affluent := "deselected";
26 }
27
28 End SIB;]
[0105] SIBデバイス800の記述において、ライン6〜9は、内部レジスタ(すなわち、SIBデバイス800の場合、正に1ビットである、階層を処理するためにテストツールが必要とするビット)を宣言し、ライン10〜17は選択手順を示し、ライン19〜26は、(そのそれぞれの名前を使用してテストツールによって容易に識別される)選択解除手順を示す。]
[0106] 記述の本体において、NSDLの2つの役割を識別するのは容易である。すなわち、(1)スキャンパスの修正、したがって、ビットストリームはスライス処理によって表現され(ライン14および23を参照)、(2)トポロジの修正は、(例えば、トポロジマッピングにおける「precedent」および「following」の割当てに類似した形で)列の値を割り当てることによって行われる。]
[0107] 図9は、NSDLを使用して記述され得る1つのクロスロードデバイスのハイレベルブロック図を示す。詳細には、図9は、階層切替デバイス900を示す。階層切替デバイス900は、3つの入力アフルエントと2つの出力トリビュタリとを含む。3つのアフルエントおよび2つのトリビュタリを有するとして示されるが、任意の数のアフルエントおよびトリビュタリがサポートされ得る。] 図9
[0108] (分かりやすくするために行番号を加えた状態で)階層切替デバイス900のNSDLベースの記述が続く。]
[0109] 1 IP Hierarchy_switch generic (precedent : string := "TDI";
2 following : string := "TDO";
3 tributary_0 : string := "deselected";
4 tributary_1 : string := "deselected";
5 affluent_0 : string:= "deselected";
6 affluent_1 : string:= "deselected";
7 affluent_2 : string:= "deselected";
8 )
9
10 Begin
11
12 Affl_map: Vector_REG generic map (precedent =>"TDI",
13 following=>"Trib_map"
14 elem_size => 2;
15 elements => 3);
16 Trib_map : Vector_REG generic map (precedent =>"Affl_map",
17 following=>"TDO"
18 elem_size => 2;
19 elements => 2);
20
21 subtype name is string (1 to 11);
22 type name_vector is array (natural range <>) of name;
23 constant affluent_name : name_vector (0 to 2) :=
24 ("affluent_0 ","affluent_1 ","affluent_2");
25 constant tributary_name : name_vector (0 to 1) :=
26 ("tributary_0","tributary_1");
27
28
29 Procedure select(affluent_nmb : in std_logic_vector(1 downto 0);
30 tributary_nmb : in std_logic)
31 Length 1;
32 Selection wired;
33 {
34 Trib_map <= affluent_nmb;
35 Affl_map <= "0"&tributary_nmb;
36
37 case (tributary_nmb)
38 when‘0’=>tributary_0:=
39 affluent_name(conv_integer(affluent_nmb));
400 when‘1’=> tributary_1:=
41 affluent _name(conv_integer(affluent_nmb));
42 end case;
43
44 case (affluent_nmb)
45 when "00"=> affluent_0:=
46 tributary_name(conv_integer(tributary_nmb));
47 when "01" => affluent_1 :=
48 tributary_name(conv_integer(tributary_nmb));
49 when "10" => affluent_2 :=
50 tributary_name(conv_integer(tributary_nmb));
51 whenothers => assert false report "ERROR!" severity failure;
52 end case;
53 }
54
55 Procedure deselect_affluent
56 (affluent_nmb : in std_logic_vector(1 downto 0))
57 Length 1;
58 Selection wired;
59 {
60 Affl_map <= "11";
61 case (affluent_nmb)
62 when "00" => affluent_0 := "deselected";
63 when "01" => affluent_1 := "deselected";
64 when "10" => affluent_2 := "deselected";
65 when others => assert false report "ERROR!" severity warning;
66 end case;
67
68 }
69
70 Procedure deselect_tributary (tributary_nmb : in std_logic)
71 Length 1;
72 Selection wired;
73 {
74 Trib_map <= "11";
75 case (tributary_nmb)
76 when ‘0’=> tributary_0 := "deselected";
77 when ‘1’=> tributary_ 1:= "deselected";
78 end case;
79 }
80 End hierarchy_switch;]
[0110] 階層切替デバイス900の記述において、ライン3〜7は、(それぞれに独自の名前が与えられている場合)アフルエントおよびトリビュタリを宣言し、ライン12〜19は、(すなわち、切替マトリックスに類似した)内部スキャンパスを宣言し、ライン21〜26は、いくつかのカスタムタイプを定義することによって、VHDL機能を十分に活用する(それによって、本質的に階層的な記述子に関する切替マトリックスになるものを作成する)。]
[0111] 階層切替デバイス900の記述において、「選択」手順(ライン29〜53)は、ビットストリーム修正を処理し、さらに、動的なスキャンパス修正を記述するために、VHDLアルゴリズム機能(および事前に定義されたカスタムタイプ)を処理する。機能のこれらのパラメータは、接続されることになる経路の順序数を指す。]
[0112] 階層切替デバイス900の記述から理解されるように、階層切替デバイス900を介して接続を非アクティブにすることは、接続の両終端の選択解除を必要とせず、むしろ、接続の1つの終端だけの選択解除が接続の役目を果たす。したがって、選択解除は、2つの手順によって処理されることが可能である。すなわち、(1)「deselect_affluent」は、(順序数をパラメータとして使用して)アフルエントの選択解除を可能にし、(2)「deselect_tributary」は、(順序数をパラメータとして使用して)トリビュタリの選択解除を可能にする。]
[0113] 図10は、NSDLを使用して記述され得る1つのクロスロードデバイスのハイレベルブロック図を示す。詳細には、図10は、バスアーキテクチャデバイス1000を示す。バスアーキテクチャデバイス1000は、構成要素バス1012を経由して相互接続されたマスターゲートウェイ構成要素1011と、5つのスレーブ構成要素1013A〜1013E(集合的に、スレーブ構成要素1013)とを含む。] 図10
[0114] バスアーキテクチャデバイス1000において、スレーブ構成要素1012のそれぞれには、スレーブ構成要素1012にアクセスするためにゲートウェイ構成要素1011によって使用されるアドレスが割り当てられる。ゲートウェイ構成要素1011がスレーブ構成要素1012アクセスすることを可能にするために、ある種のプロトコルがバスアーキテクチャデバイス1000によってサポートされなければならないが、バスアーキテクチャデバイス1000のNSDLベースの記述は、そのプロトコルに関するどんな情報も必要としない。]
[0115] (分かりやすくするために行番号を加えた状態で)バスアーキテクチャデバイス1000のNSDLベースの記述が続く。]
[0116] ゲートウェイパッケージの記述。]
[0117] 1 Package GW_package is
2
3 Constant N_SLAVES : integer := 5;
4 Constant ADDRESS_DEPTH: integer := 3;
5 subtype slave_name_type is string (1 to 1);
6 subtype slave_address_type is std_logic_vector
7 (ADDRESS_DEPTH-1 downto 0);
8
9 Type slave_mapping_type is record
10 slave_name : slave_name_type;
11 slave_address : slave_address_typr;
12 end record;
13
14 Type network_mapping_type is array (1 to N_SLAVES) of
15 slave_mapping_type;
16
17 Constant BUS_OP_FIELDS : integer := 2;
18
19 Constant BUS_READ : std_logic_vector(BUS_OP_FIELDS-1
downto 0) := "01";
20 Constant BUS_ WRITE: std_logic_vector(BUS_OP_FIELDS-1
downto 0) := "10";
21 Constant BUS_IDLE: std_logic_vector(BUS_OP_FIELDS-1 downto
0) := "00";
22
23 End GW_package;

Gateway Description:
1 Use GW_package.all;
2
3 IP GW generic (precedent : string := "TDI";
4 following : string := "TDO";
5 tributary : string := "deselected";
6 affluent : string := "deselected";
7 network_mapping: network_mapping_type);
8
9
10 Begin
11
12 Address_map :REG generic map (precedent => "TDI",
13 following=> "TDO"
14 elements => ADDRESS_DEPTH);
15 Bus_operation : REG generic map(
16 precedent => "Address_map";
17 following => "TDO";
18 elements => BUS_OP_FIELDS);
19
20 Function get_slave_address(name : in slave_name_type)
21 return slave_address_type is
22 Begin
23 for k in N_SLAVES loop
24 If network_mapping(k).slave_name = name then
25 return network_mapping(k).slave_address;
26 End loop;
27 asset false report "ERROR, slave "&name&" does not exist"
28 severity failure;
29 end get_slave_address;
30
31 Procedure select_tributary(tributary_name :in slave_name_type)
32 Length 10;
33 Selection transaction;
34 {
35 address_map <= get_slave_address(tributary_name);
36 bus_operation <= BUS_WRITE;
37 tributary:=tributary_name;
38 }
39
40 Procedure select_affluent(affluent_name : in slave_name_type)
41 Length 10;
42 Selection transaction;
43 {
44 address_map <= get_slave_address(affluent_name);
45 bus_operation <= BUS_READ;
46 affluent := affluent_name;
47 }
48
49 End GW;]
[0118] バスアーキテクチャデバイス1000のNSDLベースの記述は、より良好な可読性を目指して2つのファイルに分けられている。詳細には、バスアーキテクチャデバイス1000のNSDLベースの記述は、以下の部分に分けられる。すなわち、(1)バスアーキテクチャデバイス1000に関するタイプ宣言のすべてをホストするパッケージ、および(2)バスアーキテクチャデバイス1000の記述である。]
[0119] バスアーキテクチャデバイス1000のNSDLベースの記述は、バスアーキテクチャデバイス1000のバスプロトコルの実際の実装に関する情報を必要とせず、むしろ、NSDLベースの記述は、バスアーキテクチャデバイス1000内でトランザクションを開始するために求められるコマンドに関する情報だけを必要とする。トランザクションは、NSDLベースの記述内に含まれた「select_tributary」機能および「select_affluent」機能によって定義される。]
[0120] 「select_tributary」機能(ライン31〜38)は、バスに「書込み」動作を命令するために、(カスタムタイプおよび機能を利用している)良好なレジスタに良好なアドレスを書き込む。「select_affluent」機能(ライン40〜47)は、バスから「読取り」動作を命令するために、(カスタムタイプおよび機能を利用している)良好なレジスタから良好なアドレスを読み取る。]
[0121] バスアーキテクチャデバイス1000は、「トランザクション」クロスロードデバイスであるため、バスアーキテクチャデバイス1000のNSDLベースの記述は、「選択」手順または「選択解除」手順を必要とせず、むしろ、テストツールが、その接続は一回だけアクティブになり、次いで、アフルエントおよびトリビュタリは「選択解除された」に設定し戻されることになることを知るように、「選択」手順および「選択解除」手順は、「トランザクション」として印される。]
[0122] 本明細書で説明されるように、バスアーキテクチャデバイス1000などのクロスロードデバイス(および、その他のクロスロードデバイス)は、完全にP1687標準の現在の機能の範囲外である。バスアーキテクチャデバイス1000などのクロスロードデバイス(および、その他のクロスロードデバイス)の記述は、NSDLの使用によってだけ可能にされる。]
[0123] 本明細書で説明されるように、システムオンチップは、NSDLを使用して記述されることが可能であり、さらに、システムオンチップのシステムレベルの記述は、システムオンチップをテストするためにテストツールによって利用されることが可能である。NSDLを使用して記述されるシステムオンチップをテストするように適合された例示的なテストツールは、図11に関して示され、かつ説明される。さらに、NSDLを使用して記述されるシステムオンチップのテストは、図12〜図20を参照してよりよく理解され得る。] 図11 図12 図13 図14 図15 図16 図17 図18 図19 図20
[0124] 図11は、図1のテスト環境のテストシステムのハイレベルブロック図を示す。詳細には、TS120は、プロセッサ1110と、メモリ1120と、入出力(I/O)インターフェース1130と、サポート回路1140とを含む。プロセッサ1110は、メモリ1120、I/Oインターフェース1130、およびサポート回路1140のそれぞれに結合される。プロセッサ1110は、本明細書で示され、かつ説明される様々なテスト機能を提供するために、メモリ1120、I/Oインターフェース1130、およびサポート回路1140と協働する。] 図1 図11
[0125] 図11に示されるように、メモリ1120は、システムテストを実行する際に使用するように適合されたリソースを格納する。詳細には、メモリ1120は、システムテストを実行する際に使用するように適合されたテストツール1121、テストリソース記述1122、およびテストデータ1123を格納する。メモリ1120は、(その他1124として示される)システムテストを実行するために使用され得る任意のその他のプログラム、記述、データなどを格納することが可能である。] 図11
[0126] テストツール1121は、システムテストを制御する。テストツール1121は、1つまたは複数のテスト手順を含み得る。これらのテスト手順は、1つまたは複数のテストコンパイラによって生成され得る。これらのテスト手順は、1つまたは複数のシステムをテストするために実行され得る。テストツール1121は、システムテストを制御するために使用され得る任意のその他の手順、プログラムなどを含む。]
[0127] テストリソース記述1122は、構成要素記述、システム記述など、ならびにそれらの様々な組合せなど、システムテストにおいて使用するように適合された任意の記述を含み得る。テストリソース記述1122は、システムトポロジの記述を含み得る。テストリソース記述1122は、システムオンチップテストを実行する際に使用するために処理されることが可能な任意のその他の記述を含み得る。]
[0128] テストリソース記述1122は、異なるタイプのテストリソースに関して記述テンプレートが維持され得るように、1つまたは複数のライブラリを含むことが可能である(したがって、必要に応じて、アクセスおよび修正されることが可能である)。これらのテンプレートは、構成要素レベルのテンプレート(例えば、あるIPに関するテンプレート、ある計器に関するテンプレートなど)、システムトポロジテンプレートなど、ならびにそれらの様々な組合せであり得る。]
[0129] テストデータ1123は、システムテストを実行する際に使用するように適合された任意のデータを含む。テストデータ1123は、入力ビットストリームデータ、出力ビットストリームデータ(例えば、テストシステムによって決定された、期待される出力ビットストリーム、およびシステムオンチップから捕捉された実際の出力ビットストリーム)など、ならびにそれらの様々な組合せを含み得る。テストデータ1123は、テストされているシステムに適用されることが可能であり、かつ/またはテストされているシステムから回復されることが可能な任意のその他のデータを含み得る。]
[0130] I/Oインターフェース1130は、TS120からS−o−C110にインターフェースを提供する。I/Oインターフェース1130は、JTAGベースのインターフェースである。I/Oインターフェース1130は、それによって、プロセッサ1110によるテスト手順の実行に応答して、TS120が入力ビットストリームをS−o−C110に適用することが可能なTDIインターフェースをサポートする。I/Oインターフェース1130は、それによって、プロセッサ1110によるテスト手順の実行に応答して、TS120が実際の出力ビットストリームをS−o−C110から回復することが可能なTDOインターフェースをサポートする。]
[0131] 本明細書において、1つのTDIインターフェースおよび1つのTDOインターフェースに関して主に示され、かつ説明されるが、I/Oインターフェース1130は、異なるシステムオンチップ構成をテストするために求められるまたは所望される任意の数および任意の(1つまたは複数の)タイプのテストインターフェースをサポートすることが可能である。例えば、JTAGベースのテストの場合、I/Oインターフェース1130は、TCK信号、TMS信号、および、オプションで、TRST信号に関するインターフェースをサポートすることも可能である。]
[0132] サポート回路1140は、システムテストを実行する際に使用され得る任意の追加の回路を含む。例えば、サポート回路1140は、追加のプロセッサ、追加のメモリ、追加のインターフェース、テストビットストリーム生成回路、テストビットストリーム処理回路など、ならびにそれらの様々な組合せを含み得る。サポート回路1140は、テストシステム120によって求められる場合がある任意の追加の回路を含む。]
[0133] プロセッサ1140は、本明細書で説明される様々なシステムオンチップテスト機能を提供するために、メモリ1120、I/Oインターフェース1130、およびサポート回路1140と協働する。]
[0134] プロセッサ1140は、記述(例えば、機能レベルの記述、構成要素記述など)を生成する。プロセッサ1140は、(例えば、構成要素相互接続を解析するため、システム記述を生成するためなどに構成要素記述を使用して)記述を生成するために、テストリソース記述1122からの記述を処理する。プロセッサ1140は、テストリソース記述1122の一部として、それらの記述を格納する。]
[0135] プロセッサ1140は、システムオンチップをテストするためのテスト手順を生成して、テストツール1121の一部としてそれらのテスト手順を格納する。プロセッサ1140は、テストツール1121からのテスト手順を使用して、テストデータを生成して、テストデータ1123の一部としてそのテストデータを格納する。]
[0136] プロセッサは、本明細書で説明される任意のその他のシステムオンチップテスト機能を提供するために、メモリ1120、I/Oインターフェース1130、およびサポート回路1140と協働することが可能である。]
[0137] システムオンチップのNSDLベースの記述を使用したシステムオンチップのテストは、システムオンチップのNSDLベースの記述を使用してシステムオンチップをテストするための方法を提供する図12〜14に関してよりよく理解され得る。システムオンチップのNSDLベースの記述を使用したシステムオンチップのテストは、(システムオンチップの1つの構成要素のテストを例示的に示す)図15および図16、(システムオンチップの構成要素をテストするための方法を提供する)図17、および(システムオンチップのテストを例示的に示す)図18〜図20に関してさらに理解され得る。] 図12 図13 図14 図15 図16 図17 図18 図19 図20
[0138] 図12は、JTAG接続を介してシステムをテストするために、図1のテストシステムによって実行される例示的な方法を示す。直列的に実行されているとして示され、かつ説明されるが、図12の方法1200のステップの少なくとも一部は、同時に、または、図12に関して示され、かつ説明されたのとは別の順序で実行されることが可能である。方法1200は、ステップ1202で始まり、ステップ1204に進む。] 図1 図12
[0139] ステップ1204において、システムオンチップに関するテストビットストリームが決定される。テストビットストリームは、入力ビットストリームと、期待される出力ビットストリームとを含む。テストビットストリームは、本明細書で説明されるいずれかの形で決定されることが可能である。一実施形態では、テストビットストリームは、図13に関して示され、かつ説明される方法を使用して決定される。] 図13
[0140] ステップ1206において、入力ビットストリームは、システムオンチップに適用される。入力ビットストリームは、システムオンチップのTDIインターフェースを経由してシステムオンチップに適用されることが可能である。ステップ1208において、システムオンチップから実際の出力ビットストリームが捕捉される。実際の出力ビットストリームは、システムオンチップのTDOインターフェースを経由してシステムオンチップから捕捉され得る。]
[0141] ステップ1210において、実際の出力ビットストリームおよび期待される出力ビットストリームを使用して、テスト結果が決定される。テスト結果は(例えば、テストの間に何らかのエラーが存在したか否かを決定するために)実際の出力ビットストリームを期待される出力ビットストリームと比較することによって決定され得る。ステップ1212において、テスト結果が格納される。]
[0142] ステップ1214において、方法1200は終了する。]
[0143] 図13は、JTAG接続を介してシステムをテストするために、図1のテストシステムによって実施される例示的な方法を示す。詳細には、図13の方法1300は、システムオンチップをテストする際に使用するためのテストビットストリームを決定するための方法を含む。直列的に実行されているとして示され、かつ説明されるが、図13の方法1300のステップの少なくとも一部は、同時に、または、図13に関して示され、かつ説明されたのとは別の順序で実行されることが可能である。方法1300は、ステップ1302で始まり、ステップ1304に進む。] 図1 図13
[0144] ステップ1304において、(本明細書で、システム記述として示される)システムオンチップの記述が決定される。システム記述は、本明細書で説明されるいずれかの形で決定されることが可能である。システム記述は、システムオンチップのNSDLベースの記述である。一実施形態では、システム記述は、図14に関して示され、かつ説明される方法を使用して決定される。] 図14
[0145] ステップ1306において、システムオンチップをテストするためのテストビットストリームがシステムオンチップのシステム記述から決定される。テストビットストリームは、システムオンチップに適用されることになる入力ビットストリームと、システムオンチップから捕捉された実際の出力ビットストリームと比較されることが可能な期待される出力ビットストリームとを含む。]
[0146] ステップ1308において、方法1300は終了する。]
[0147] 図14は、JTAG接続を介してシステムをテストするために、図1のテストシステムによって実行される例示的な方法を示す。詳細には、図14の方法1304は、システムオンチップのシステム記述を決定するための方法を含む。直列的に実行されているとして示され、かつ説明されるが、図14の方法1304のステップの少なくとも一部は、同時に、または、図14に関して示され、かつ説明されたのとは別の順序で実行されることが可能である。方法1304は、ステップ1402で始まり、ステップ1404に進む。] 図1 図14
[0148] ステップ1404において、システムオンチップの構成要素が識別される。システムオンチップの構成要素は、いかなるようにも識別され得る。一実施形態では、システムオンチップの構成要素は、システムオンチップが供給されたテストリソースの一部として識別される。一実施形態では、システムオンチップの構成要素は、システムオンチップを解析することによって識別される。システムオンチップの構成要素は、いずれかのその他の形で識別されることも可能である。]
[0149] ステップ1406において、システムオンチップの構成要素のそれぞれに関して構成要素記述が決定される。構成要素記述は、いかなるようにも決定され得る。]
[0150] 構成要素記述が事前に定義される一実施形態では、構成要素記述は、事前に定義された記述を単に読み取ることによって決定されることが可能である。構成要素記述が事前に設定されない一実施形態では、構成要素記述は、構成要素のそれぞれを解析することによって、オンザフライで定義されることが可能である。]
[0151] 構成要素の記述は、構成要素の内部スキャンパスを指定する。一実施形態では、構成要素の記述は、レジスタ値の点から構成要素を表す。構成要素が複数の機能をサポートする、1つのかかる実施形態では、構成要素の機能のそれぞれは、レジスタ値の点から表されることが可能である。レジスタ値の点から構成要素を記述することは、図15に関してよりよく理解され得る。構成要素記述はNSDLを使用して指定される。] 図15
[0152] ステップ1408において、システムオンチップのトポロジが決定される。システムオンチップのトポロジは、システムオンチップの構成要素同士の間の相互接続を記述する。システムオンチップのトポロジは、システムオンチップの構成要素同士の間の相互接続を解析することによって決定される。]
[0153] ステップ1410において、システムオンチップのシステム記述が決定される。システム記述は、構成要素記述およびシステムトポロジを使用して決定される。システムオンチップのシステム記述は、システムオンチップのそれぞれの構成要素のそれぞれの内部スキャンパスと、システムオンチップの構成要素同士の間の相互接続とを含めて、システムオンチップのスキャンパスを表す。システム記述は、システムオンチップを記述するために使用されることが可能な任意のその他の情報を含み得る。ステップ1412において、システムオンチップのシステム記述が格納される。]
[0154] ステップ1414において、方法1304は終了する。]
[0155] 図15は、図2のシステムオンチップの構成要素のうちの1つをテストするためのテスト手順に関するレジスタ値を決定するための構成要素の記述の使用を示す。詳細には、(分かりやすくするために省略された)S−o−C110の構成要素210Aの記述は、S−o−C110の構成要素210Aに関する(レジスタ値1510として示される)レジスタ値のセットに変換される。構成要素210Aのレジスタ値1510は、構成要素210Aによってサポートされる3つの機能のそれぞれに関するレジスタ値を含む。構成要素210Aによってサポートされる3つの機能のそれぞれに関するレジスタ値は、テスト構成要素210Aに関して使用されるテストビットストリームをテストに関する値を決定するために処理されることが可能である。] 図15 図2
[0156] 図15に示されるように、構成要素210Aの機能は、構成要素210Aが構成される構成要素レジスタA0、A1、A2のレジスタ値の点から説明される。第1の機能は、「000」、4サイクル待機、「001」として定義される。第2の機能は、「111」、1サイクル待機、「010」、5サイクル待機、「101」として定義される。第3の機能は、「000」、2サイクル待機、「100」、10サイクル待機、「000」として定義される。すなわち、レジスタ値1510は、機能から構成要素210Aに関する構成要素レジスタ値へのマッピングを指定する。この記述(すなわち、機能からレジスタ値へのマッピング)は、テストビットストリームを決定するために、構成要素の記述が処理され得る容易さを示す。] 図15
[0157] 図15に示されるように、構成要素210Aの機能のそれぞれに関して、レジスタ値1510は(1)その機能に関して、構成要素レジスタがどのように書き込まれ、かつ読み取られるか、および(2)その機能に関して、構成要素レジスタ値がどのように解釈されなければならないかを示す。したがって、NSDLなどの記述言語において、構成要素の記述は、システムオンチップの関連で、構成要素をテストするためのテスト手順において使用するためのレジスタ値に変換されることが可能な構成要素の機能の記述を含む。] 図15
[0158] 機能からレジスタ値へのマッピングを説明する際に分かりやすくするために省略されているが、NSDLの点から、構成要素210Aの特定の記述は、図3〜図5に関して示され、かつ説明されたように構成されたアルゴリズム記述である。構成要素210AのこのNSDLベースの記述は、機能からレジスタ値へのマッピングが決定されることを可能にする。分かりやすくするために省略されているが、S−o−C110のその他の構成要素(すなわち、構成要素210B〜構成要素210E)のそれぞれに関して、類似の記述が定義され得る。] 図3 図4 図5
[0159] 図16は、図2のシステムオンチップの構成要素のうちの1つをテストするためのテスト手順に関するテストビットストリームを決定するための、図2のシステムオンチップの構成の記述の使用を示す。図16に示されるように、テストビットストリーム1610は、S−o−C110の少なくとも一部をテストする際に使用するために生成される。詳細には、テストビットストリーム1610は、S−o−C110のTDIポートに適用される入力ビットストリーム1611Iと、S−o−C110のTDOポートから受信される出力ビットストリーム1611Oとを含む。] 図16 図2
[0160] テストビットストリーム1610は、(NSDLを使用して指定される)S−o−C110の記述を使用して、TS120によって生成される。(本明細書において、システム記述とも呼ばれる)S−o−C110の記述は、S−o−C110のテストリソースの記述(例えば、構成要素210の記述、構成要素相互接続220の記述など、ならびにそれらの様々な組合せ)を含む。S−o−C110のシステム記述は、S−o−C110のトポロジ、したがって、S−o−C110のシステムスキャンパスを記述する。]
[0161] 本明細書で説明されるように、TS120は、S−o−C110の(システムスキャンパスの記述を提供する)システム記述に基づいてテストビットストリーム1610を生成する。したがって、S−o−C110のシステム記述はS−o−C110のシステムスキャンパスの記述を提供するため、TS120は、S−o−C110に関して生成されたテストビットストリーム1610のどの部分が、S−o−C110のシステムスキャンパスのどの部分に対応するのかを決定することが可能である。これは、図16に示される。] 図16
[0162] 図16に示されるように、入力ビットストリーム1611I内および出力ビットストリーム1611O内の特定のビット位置(すなわち、構成要素210Aに対応するビット位置)が突き止められている。構成要素210A内のレジスタに対応する入力ビットストリーム1611I内および出力ビットストリーム1611O内の特定の位置の位置決定は、(S−o−C110内の構成要素210のそれぞれの位置を含めて、S−o−C110のシステムスキャンパスに関する情報を提供する)S−o−C110のNSDLベースの記述の使用によって可能にされる。] 図16
[0163] 構成要素レジスタからビットストリームへの変換を説明する際に、分かりやすくするために省略されているが、NSDLの点から、S−o−C110の特定の記述は、S−o−C110のトポロジ、したがって、S−o−C110のシステムスキャンパスを記述するアルゴリズム記述である。S−o−C110のこのNSDLベースの記述は、レジスタ値からビットストリームへの変換が実行されるのを可能にする。]
[0164] 図17は、IJTAG/NSDLフレームワーク内のシステムの構成要素をテストするために、図1のテストシステムによって実行される例示的な方法を示す。詳細には、図17の方法1700は、システムオンチップの1つの構成要素をテストするための方法を含む。直列的に実行されているとして示され、かつ説明されるが、図17の方法1700のステップの少なくとも一部は、同時に、または、図17に関して示され、かつ説明されたのとは別の順序で実行されることが可能である。方法1700は、ステップ1702で始まり、ステップ1704に進む。] 図1 図17
[0165] ステップ1704において、システムオンチップの構成要素が選択される(すなわち、テストされることになるシステムオンチップの構成要素として選択される)。]
[0166] ステップ1706において、選択された構成要素の記述が取得される。]
[0167] ステップ1708において、構成要素によってサポートされるそれぞれの機能に関して、機能は、その構成要素のレジスタに関連するレジスタ値に変換される。構成要素の機能は、構成要素の記述を使用して、レジスタ値に変換される。]
[0168] ステップ1710において、システムオンチップのシステム記述が取得される。システムオンチップのシステム記述は、システムオンチップの構成要素の記述およびシステムオンチップのトポロジの記述から決定された、システムオンチップのシステムスキャンパスを指定する。システム記述は、システムオンチップに関するテストビットストリームを指定するために使用されることが可能である。]
[0169] ステップ1712において、システムオンチップのテストビットストリーム内の選択された構成要素の位置がシステムオンチップのトポロジを使用して決定される。テストビットストリーム内の選択された構成要素の位置は、入力ビットストリーム内の1つまたは複数のビット位置および実際の出力ビットストリーム内の1つまたは複数のビット位置を指定する。]
[0170] ステップ1713(オプションのステップ)において、(すなわち、構成要素に対するアクセスがクロスロードデバイスによって制御される場合)クロスロードデバイスが駆動される。クロスロードデバイスは、クロスロードデバイスのアルゴリズム記述を処理することによって駆動される。クロスロードデバイスを駆動させることは、関連する構成要素をシステムオンチップのスキャンパスに動的に加えるために、クロスロードデバイスが選択されることを可能にする。構成要素に対するアクセスが、もはや求められなくなった後で、クロスロードデバイスは、次いで、関連する構成要素をシステムオンチップのスキャンパスから除去するために選択解除されることが可能である。構成要素に対するアクセスはクロスロードデバイスによって制御されてよく、またはクロスロードデバイスによって制御されなくてもよいため、このステップはオプションである。]
[0171] ステップ1714において、レジスタ値が入力ビットストリームの突き止められた位置内に挿入される。次いで、入力ビットストリームは、(すなわち、システムオンチップの少なくとも一部をテストするために)システムオンチップの入力テストアクセスポートに適用されることが可能である。ステップ1716において、結果値が出力ビットストリームの突き止められた位置から(すなわち、システムオンチップの出力テストアクセス部分からテストシステムによって捕捉された出力ビットストリームから)回復される。回復された結果値は、次いで、様々なテスト結果を決定するために処理されることが可能である。]
[0172] ステップ1718において、方法1700は終了する。]
[0173] 図18は、例示的なシステムオンチップのハイレベルブロック図を示す。図18に示されるように、システムオンチップ1800は、フィルタと、アナログ・デジタル変換器(ADC)、デジタル・アナログ変換器(DAC)、およびアンテナアクセスユニット(AAU)を含む、3つの計器とを含む。AAUは、アナログ・デジタル・アナログ変換をサポートする。このフィルタは、(RX_outとして示される)ADCに対する出力接続と、(TX_inとして示される)DACからの入力接続とをサポートする。このフィルタは、(AN_inoutとして示される)AAUとの双方向接続をサポートする。] 図18
[0174] 図18に示されるように、3つの計器に対するアクセスは、スキャンパスを経由してTDI入力からTDO出力に提供される。このスキャンパスは、アクチュエータレジスタと3つのSIBセル(それぞれの計器がスキャンパスに加えられるのを可能にする3つの計器のそれぞれに関して1つ)のセットとを含む。アクチュエータレジスタは、フィルタとインターフェースをとる。第1のSIBセルは、(アフルエントおよびトリビュタリを経由して)ADC計器に対するアクセスを提供する。第2のSIBセルは、(アフルエントおよびトリビュタリを経由して)DAC計器に対するアクセスを提供する。第3のSIBセルは、(アフルエントおよびトリビュタリを経由して)AAU計器に対するアクセスを提供する。] 図18
[0175] スキャンパスの記述が続く。TDI入力は、アクチュエータレジスタのセットの入力に結合される。アクチュエータレジスタのセットの出力は、第1のSIBセルの入力に結合される。第1のSIBの出力は、第2のSIBセルの入力に結合される。第2のSIBセルの出力は、第3のSIBセルの入力に結合される。第3のSIBセルの出力は、TDO出力に結合される。TDI入力からTDO出力へのこのシーケンスは、SIBのそれぞれが選択解除されたとき(すなわち、そのそれぞれの計器がスキャンパスに加えられるように、SIBのいずれも「選択され」ない場合)システムオンチップ1800のスキャンパスを形成する。]
[0176] 図18に示されるように、3つの計器のそれぞれは、それらの3つの計器に関連するそれぞれのSIBセルのアフルエントインターフェースおよびトリビュタリインターフェースを選択することによって、スキャンパスに容易に加えられることが可能である。例えば、第1のSIBは、ADC計器がテストのためのスキャンパスに加えられることが可能なように選択され得る。例えば、第1のSIBおよび第3のSIBは、ADC計器およびAAU計器の両方がテストのためにスキャンパスに加えられることが可能なように選択され得る。本明細書で説明されるように、システムオンチップ1800のNSDLベースの記述は、システムオンチップ1800のテストを簡素化する。] 図18
[0177] 図19は、図18のシステムオンチップの構成要素のうちの1つをテストするためのテスト手順に関するレジスタビット値を決定するための構成要素の記述の使用を示す。詳細には、図19は、(記述1910として示される)ADC計器の記述の(レジスタ1920として示される)ADC計器のレジスタに関連するレジスタ値へのマッピングを示す。図19に示されるように、記述1910は、(スキャンパス記述1911として示される)スキャンパスの記述と、(機能アルゴリズム1912として示される)ADC計器によって実行される機能のアルゴリズム表示とを含む。] 図18 図19
[0178] 記述1910は、NSDLベースの(アルゴリズム)記述である。スキャンパス記述1911は、(データレジスタおよび制御レジスタを含む)ADC計器のレジスタを識別して、(例えば、「先行部分」、「後続部分」、および長さ情報を識別して)レジスタがどのように構成されるかを記述する。機能アルゴリズム1912は、ADC計器によって実行される機能の動作を記述する。記述1910から、テストツールは、ADC計器をテストするために使用され得るビットストリーム値を容易に決定することが可能である。]
[0179] 図20は、図18のシステムオンチップの構成の記述を決定するための、図18のシステムオンチップの構成要素の記述の使用を示す。詳細には、図20は、(トポロジ2010として示される)図18のシステムオンチップのトポロジの記述を示す。トポロジ2010は、システムオンチップ1800の構成要素(例えば、アクチュエータレジスタ、SIB、および計器)のそれぞれの入力および出力のそれぞれの汎用マッピングを使用して指定される。] 図18 図20
[0180] 例えば、アクチュエータレジスタの記述は、アクチュエータレジスタに対する入力がTDI入力(「precedent」=>「TDI」)であり、アクチュエータレジスタからの出力が、ADC計器のRX_registerに対するアクセスを可能にするため(following=>「RX_enable」)、RX_enableとして示される第1のSIBであることを示す。すなわち、アクチュエータレジスタ構成要素は、そのアクチュエータレジスタ構成要素がインターフェースをとる構成要素の点から記述される。]
[0181] 例えば、第1のSIBの記述(すなわち、RX_enable 構成要素)は、RX_enable構成要素がアクチュエータレジスタに対する入力(precedent=>「actuator_register」)であり、第1のSIBの出力が、DAC計器のTX_registerに対するアクセスを可能にするため(following=>「TX_enable」)、TX_enableとして示される第2のSIBであることを示す。]
[0182] さらに、第1のSIBはADC計器に対するアクセスを可能にするため、第1のSIBの記述は、ADC計器に対するアクセスも記述する。詳細には、第1のSIBの記述は、第1のSIBからADC計器へのアクセスが1つの入力(affluent=>「RX_register」)および1つの出力(tributary=>「RX_enable」)を経由して可能にされることを示す。]
[0183] これらの例から、システムオンチップのトポロジ全体がNSDLを使用して容易に記述され得ることは明らかである。さらに、トポロジはシステムオンチップの構成要素同士の間の相互接続の記述を提供するため、システムオンチップのトポロジ内のシステムオンチップの構成要素のそれぞれの位置は、容易に決定されることが可能である。]
[0184] 本明細書で説明されるように、(構成要素の機能から構成要素のレジスタに関するレジスタ値へのマッピングを提供する)システムオンチップの構成要素の記述と、システムオンチップのトポロジの記述とを使用して、様々なタイプのテストがシステムオンチップ上で実行され得る。したがって、図18〜20は、NSDLを使用して、システムオンチップを記述する利点を示す。] 図18 図19 図20
[0185] 先の記述から、システムオンチップを記述するためにNSDL言語を使用することの様々な利点および利益は明らかである。NSDLのアルゴリズム性質は、(トポロジがどんなに複雑であろうと)システムオンチップのテスト(例えば、複数の構成要素のテスト、1つの構成要素のテスト、構成要素の機能のサブセットのテストなど、ならびにそれらの様々な組合せ)のために適合されたテストビットストリームを決定するために処理され得るシステムオンチップのアルゴリズム記述を可能にする。したがって、NSDLを使用すると、システムオンチップをテストする際に使用するための、システムオンチップのシステムスキャンパスの階層的記述が決定されることが可能である。]
[0186] NSDL言語は、システムオンチップ構成要素(例えば、IP、計器、クロスロードデバイスなど)のアルゴリズム記述、システムオンチップトポロジ(例えば、構成要素同士の間の相互接続、構成要素間依存など)など、ならびにそれらの様々な組合せを提供することを含めて、BSDL/HSDLが単にできないようにIJTAGの特徴をサポートし、それによって、システムオンチップのアルゴリズムシステムレベルの記述を可能にする。したがって、NSDL言語は、階層化スキャンパス組織を可能にし、それによって、レジスタ値をシステムオンチップのテストのために使用され得るテストビットストリームに変換することを可能にする。]
[0187] NSDL言語は、多くの形で実装され得る。]
[0188] 一実施形態では、NSDLは、VHDLの既存の特徴を使用して実装される。BSDLはVHDLのサブセットとして定義されたのに対して、NSDLは、VHDLのスーパーセットを利用する。VHDLは主なレジスタ転送レベル(RTL)記述言語であるため、VHDLは、VHDLが記述する構成要素のテスト要件を表現するのに大変適している。VHDLと互換性がある状態にとどまることによって、NSDLは、最小限の変更を行った状態で既存のコンパイラによってサポートされることが可能である。さらに、VHDLの使用は、NSDLに遷移することが、VHDLに慣れた人々にとって円滑な経験になることを確実にし、さらに、既存のソースおよびツールの変換および適合が容易になることを確実にする。したがって、VHDLを利用しているNSDLは、既存のユーザコミュニティへの影響を最小限に抑え、それによって、既存のユーザコミュニティによるNSDLの適合を簡素化する。]
[0189] 対照的に、BSDLは、BSDLをVHDLと後方互換性および前方互換性の両方があるものにする努力の際にVHDLのサブセットとして開発された。サブセットは、何も加えられていないことを示す(すなわち、すべての情報は、次いで、通常と異なる形で解釈される、すでに既存のVHDL規則内に組み込まれた構造的な構文規則によって運ばれる)。後方互換性は自動的であるものの、新しい構成物(contructs)を定義する不可能性は進化を困難にする。この構造的な限界は、開発者に、多くの場合、直観に反する形で、2つの最も一般的な構成物(属性および文字列)を過剰使用させる。すなわち、BSDLは、VHDLのほんの一部の中で効果的に制約され、それによって、VHDLが文脈的な意味を有するいかなる可能性も排除した。]
[0190] 本明細書で説明されるように、NSDLは、システムオンチップテストにおいて多くの利点を提供する。同様に、NSDLを実装するためにVHDLを使用することは、 システムオンチップテストにおいて多くの利点を提供する。]
[0191] システムオンチップの構成要素は、VHDLエンティティ構成要素カプレット上でモデル形成されることが可能であり、それによって、システムオンチップの構成要素によってサポートされる個々の機能の記述を可能にする。したがって、それぞれの構成要素に対するアクセスは、階層を含み得る、その構成要素の内部スキャンパスを介して提供されることが可能である。さらに、構成要素は、テストシステムがその構成要素をテストするために使用することが可能なテスト手順の対応するセットが伴う可能性があり、この場合、手順の諸属性は、NSDL(例えば、長さ、依存など)を使用して指定され、一方、手順の本体は、VHDLを使用して指定される。したがって、これは、システム設計者が、構成要素設計者が構成要素レベルの記述を処理するのと同じようにシステムレベルの記述を処理することを可能にする。]
[0192] システムオンチップのスキャンパスは、VHDL構成要素のようにインスタンスが作成され得る一連のエンティティとして構成されることが可能であり、したがって、パッケージまたはライブラリに容易に再グループ化されることが可能である。さらに、多くのより複雑な表示(例えば、所与のタイプの構成要素の複数のインスタンスの作成、構成要素依存など、ならびにそれらの様々な組合せ)が容易に処理される。さらに、NSDLは、伝統的なVDL信号マッピングに関する改善であるようにシステムスキャンチェーンの構築を可能にする。システムオンチップをテストするために開発されたテスト手順は、システムスキャンパスまたは(複数の構成要素のグループ、または1つの構成要素のサブセットもしくはサブセットすら含み得るスライスと呼ばれる)システムスキャンパスの一部を参照することが可能である。]
[0193] 本明細書において、VHDLを使用してNSDLが実装される実施形態に関して主に示され、かつ説明されるが、NSDLは、(まだ開発されていないハードウェア記述言語を含み得る)その他のハードウェア記述言語を使用して実装されることが可能である。]
[0194] 本明細書で説明されるように、JTAGベースのテストを改善すること、ならびにJTAGベースのテストにおいてクロスロードデバイスの使用を可能にすることに加えて、NSDL言語は、システムオンチップの構成要素に対する並列アクセスも可能にし、それによって、システムオンチップテストにおける改善(例えば、改良型のテストスケジューリング、改良型のテスト効率など、ならびにそれらの様々な組合せ)を可能にする。]
[0195] P1687などの一実施形態では、並列アクセスは、主に、データ伝送向けの帯域幅を最適化する一方式として意図されるものの、直列アクセスは、テストの制御を依然として保持する。NSDL言語は、これら補助リソースを記述して、これらをテストフロー内(例えば、それぞれ、図12および図17に関して示され、かつ説明される方法1200内ならびに1700内)に挿入することが可能である。] 図12 図17
[0196] さらに、NSDLは、例えば、システムオンチップをテストするための並列アクセスを提供するためにクロスロードデバイスを使用して、システムオンチップをテストするための並列アクセスを提供するためにファンアウト/ファンイン方式を使用してなど、ならびにそれらの様々な組合せを使用して、より複雑なテストアクセス機構(TAM)を記述するために拡張されることも可能である。]
[0197] 1つのシステムオンチップ(または、複数のシステムオンチップ)をテストするための並列アクセスの使用は、図21〜図28に関してより理解され得る。] 図21 図22 図23A 図23B 図24 図25 図26 図27 図28
[0198] 図21は、並列アクセスインターフェースの一般的な接続方式のハイレベルブロック図を示す。詳細には、一般的な接続方式2100は、並列アクセスインターフェース2110をシステムオンチップ2120に提供する。並列アクセスインターフェース2110は、内部並列ポート2111と、外部並列ポート2112と、内部インターフェース2113とを含む。システムオンチップ2120は、並列ポート2121を含む。] 図21
[0199] 図21に示されるように、システムオンチップ2120に対する並列アクセスは、内部並列ポート2111と並列ポート2121との間の接続によって提供される。並列ポート2121の利用は、(1)(インスタンスの作成時に行われ得る)システムオンチップ2120に対する並列ポート2121の接続および同期と、(2)(分かりやすくするために省略される)テストシステムによる並列ポート2121の処理とを必要とする。] 図21
[0200] 図21に示されるように、内部並列ポート2111および外部並列ポート2112は、n個の入力接続(n>0)およびm個の出力接続(m>0)が、システムオンチップ2120の並列ポート2121に接続されることを可能にする。] 図21
[0201] システムオンチップ2120に対する並列アクセスは、2つの様式で提供される。]
[0202] システムオンチップ2120に対する並列アクセスは、外部から提供される。テストシステムからシステムオンチップ2120への外部アクセスは、外部並列ポート2112を使用して提供される。外部並列ポート2112は、テストシステムと内部並列ポート2111との間のインターフェースとして機能する。外部並列ポート2112は、(それぞれ、内部並列ポート2111のn個の入力接続/m個の出力接続に対応する)n個の入力接続およびm個の出力接続をサポートする。]
[0203] システムオンチップ2120に対する並列アクセスは、内部で提供される。テストシステムからシステムオンチップ2120への内部アクセスは、内部インターフェース2113を使用して提供される。一実施形態では、内部インターフェース2113は、システムスキャンパスに接続された、1つまたは複数の内部レジスタを使用して実装されることが可能である。この実施形態では、内部レジスタは、並列アクセスインターフェース2110の行動を制御するため、または並列アクセスインターフェース2110の状態を問い合わせるために使用されることが可能である。]
[0204] 上記のように、内部インターフェース2112または外部インターフェース2113を経由して、内部並列ポート2111にアクセスすることになるテストシステムは、分かりやすくするために省略される。]
[0205] 並列アクセスインターフェース2110は、NSDLを使用して記述される。]
[0206] 並列アクセスインターフェース2110のNSDL記述は、(1)(1つまたは複数の)内部ポートの記述(例えば、幅情報、データフローの方向、および類似情報)と、(2)並列アクセス機能/並列アクセス手順とを含む。]
[0207] 並列アクセスインターフェース2110のNSDL記述は、オプションで、(3)外部並列ポート2112の記述(例えば、幅情報、データフローの方向、および類似情報)を含むことも可能である。]
[0208] 並列アクセスインターフェース2110のNSDL記述は、オプションで、(4)内部インターフェース2113の記述(例えば、制御機能および/または状態機能に関して利用されるレジスタの記述)を含むことも可能である。]
[0209] 一実施形態では、テストシステムから複数の構成要素を有するシステムオンチップへの並列アクセスは、テストシステムと構成要素との間でテストビットストリームを結合するための直列テスト・アクセス・インターフェースの記述(この場合、直列テスト・アクセス・インターフェースは、システムオンチップの直列スキャンパスを使用して構成要素に対するアクセスを提供する)と、テストシステムと構成要素との間でテストビットストリームを結合するための並列テスト・アクセス・インターフェースの記述(この場合、並列テスト・アクセス・インターフェースは、システムオンチップの直列スキャンパスを使用せずに、すなわち、アクセスが直列スキャンパスの1つまたは複数の値によって制御されることが可能でも、直列スキャンパスを経由して直接的にではなく構成要素に対するアクセスを提供する)とを使用して記述されることが可能である。直列テスト・アクセス・インターフェースの記述および並列テスト・アクセス・インターフェースの記述は、テストにおいて使用するために格納されることが可能である。]
[0210] 一実施形態では、テストシステムからシステムオンチップへの並列アクセスは、テストシステムをシステムオンチップのコアモジュールに結合して、並列インターフェースモジュールの記述を格納するように適合された並列インターフェースモジュールの記述を使用して記述されることが可能であり、この場合、並列インターフェースは、システムオンチップのスキャンパスを使用して、コアモジュールにアクセスするように適合された、少なくとも1つの直列レジスタと、システムオンチップのスキャンパスを使用せずに、コアモジュールにアクセスするように適合された、少なくとも1つの並列レジスタとを含む。この記述は、テストにおいて使用するために格納されることが可能である。]
[0211] 一実施形態では、テストシステムからシステムオンチップへの並列アクセスは、テストシステムと構成要素との間でテストビットストリームを結合するように適合された直列テストアクセスポートの記述と、テストシステムと構成要素との間でテストビットストリームを結合するように適合された並列テストアクセスポートの記述と、直列テストアクセスポートおよび並列テストアクセスポートをシステムオンチップの構成要素の少なくとも一部に結合するように適合されたインターフェースポートの記述とを使用して記述されることが可能である。これらの記述は、システムオンチップをテストする際に使用するために格納されることが可能である。]
[0212] 本明細書で説明されるように、これらの記述は生成されて、格納される。したがって、これらの記述は、並列アクセスを使用して、様々なテスト(例えば、構成要素レベルのテスト、システムレベルのテストなど、ならびにそれらの様々な組合せ)を実行するために、(例えば、メモリから、別のシステムから、またはかかる記述の任意のその他のソースから)プロセッサによって受信されることが可能である。]
[0213] テストシステムからシステムオンチップへの並列アクセスは、その他の様式で記述されることが可能である。]
[0214] 並列インターフェース2110とシステムオンチップ2120との間の通信は、同期であってよく、または非同期であってもよい。]
[0215] 一実施形態では、並列インターフェース2110とシステムオンチップ2120との間の通信は、スキャンチェーンと同期する。1つのかかる実施形態では、1149.1「更新」信号の立上り時に並列ポート2121上の(1つまたは複数の)値がサンプリングされる。この実施形態では、テストシステムは、単に、(入力のために)ポートに(1つもしくは複数の)値を提示し、かつ/または(出力のために)ポートから(1つもしくは複数の)値を提示しなければならない。]
[0216] 一実施形態では、並列インターフェース2110とシステムオンチップ2120との間の通信は、同期バーストとして実装される。1つのかかる実施形態では、帯域幅を最適化するために、データのバーストが(入力上で)並列ポート2121に送られ、かつ/または(出力上で)並列ポート2121から読み取られる。1つのかかる実施形態では、バーストデータは、1149.1「更新」信号の立上り時に送られること/読み取られることが可能である。並列インターフェース2110は、テストシステムに対するデータバーストの特性を指定することになる。]
[0217] 一実施形態では、並列インターフェース2110とシステムオンチップ2120との間の通信は、非同期である。この実施形態では、並列ポート2121は、単独で動作し、接続を導くために、その独自のプロトコルを処理する。この実施形態では、テストシステムは、ハイレベルのアクセス(データを送ることおよびデータを受信すること)だけを可能にすることになる。トランザクションのプロトコルは、テストシステムの並列インターフェースドライバによって処理される。]
[0218] 一実施形態では、システムオンチップ1220は、並列インターフェース2110との通信の複数のかかるモードをサポートすることが可能である。かかる実施形態では、異なる通信モードの間で切り替えるために、機能のセットが使用され得る。例えば、機能のセットは以下を含み得る。すなわち、並列ポートを動作不能にする「disable_port」、スキャンチェーン同期アクセスモードにトグルする「set_scan_synchro」、バーストアクセスモードにトグルする「set_burst」、および非同期モードにトグルする「set_asynchro」である。]
[0219] 図22は、2つの例示的な並列アクセス接続方式を示すハイレベルブロック図を示す。] 図22
[0220] 図22に示されるように、例示的な並列アクセス接続方式は、図1のテスト環境の関連で説明される。これらの例示的な並列アクセス接続方式は、テストシステム120をシステムオンチップ110に接続するために利用される。詳細には、これらの例示的な並列アクセス接続方式は、テストシステム120をシステムオンチップ110のJTAGインターフェース2201および並列インターフェース2202に接続するために利用される。] 図1 図22
[0221] 図22に示されるように、第1の並列アクセス接続方式2210は、JTAGおよび並列アクセスに関して共通のケーブルを利用する。第1の並列アクセス接続方式2210は、システムオンチップ110のスキャンパスに対するJTAGインターフェース2201およびシステムオンチップ110の並列インターフェース2202の両方に関して、(JTAG並列インターフェースデバイスとして示される)単一の接続デバイス2111を利用する。] 図22
[0222] 図22に示されるように、第2の並列アクセス接続方式2220は、個別のJTAG接続および並列接続を利用した。第2の並列アクセス接続方式2210は、システムオンチップ110のスキャンパスに対するJTAGインターフェース2201に関する(JTAGインターフェースデバイス2121として示される)第1の接続デバイスと、システムオンチップ110の並列インターフェース2202に関する(並列インターフェースデバイス2122として示される)第2の接続デバイスとを利用する。] 図22
[0223] 第2の並列アクセス接続方式2210に関して、テストシステム120が、JTAGインターフェース2201および並列インターフェース2202の両方に関するテストソース/テストシンクである実施形態に関して示され、かつ説明されるが、その他の実施形態では、JTAGインターフェース2201および並列インターフェース2202に関するテストソースおよび/またはテストシンクは異なってよい。例えば、JTAGインターフェース2201または並列インターフェース2202は、テストシステム120以外のテストソースおよび/またはテストシングを使用することが可能である。]
[0224] 一般に、並列インターフェースの実装形態に応じて、並列インターフェースを経由してシステムオンチップのテストを実行しているテストシステムは、例えば、テストシステムとシステムオンチップの並列ポートとの間に配置された多くの構成物により、システムオンチップの並列ポートに直接アクセスできない場合がある。例は、図23Aおよび23Bに示され、かつ説明される。] 図23A
[0225] 図23Aは、例示的なテスト環境のハイレベルブロック図を示す。この例示的なテスト環境2300は、テストシステムが、システムオンチップに並列アクセスを提供する並列アクセスインターフェースを使用して、システムオンチップ上でテストを実行するのを可能にする。詳細には、テスト環境2300は、インターフェースデバイス(ID)2320を経由して相互接続されたテストシステム(TS)2310とチップ/ボード(C/B)2330とを含む。] 図23A
[0226] TS2310は、並列アクセスインターフェースを経由してシステムオンチップのテストを実行するように適合されたテストシステムである。TS2310は、システムオンチップに対する並列アクセスを使用して、システムオンチップをテストする目的でシステムを実装するためにいかなるようにも実装され得る。一実施形態では、TS2310は、図11に関して示され、かつ説明されたTS120の(例えば、並列テスト機能をサポートするように適合された)適合バージョンとして実装されることが可能である。] 図11
[0227] TS2310は、並列アクセスインターフェースを経由してシステムオンチップのテストを実行するために使用するように適合されたソフトウェアを含む。詳細には、TS2310は、テストツール2312および並列インターフェースドライバ2313を制御しているオペレーティングシステム2311を含む。TS2310は、(分かりやすくするために省略される)システムオンチップのテストを実行するように適合された、その他のハードウェアおよびソフトウェア(例えば、プロセッサ、メモリ、サポート回路など)を含む。]
[0228] 一実施形態では、テストツール2312は、テストツール1121と同じであってよい(または、少なくともテストツール2312に関して示され、かつ説明される機能は、テストツール1121の一部として実装されることが可能である。]
[0229] C/B2330は、システムオンチップ2331と並列インターフェース2332とを含む。システムオンチップ2331は、本明細書で説明されるいずれかのシステムオンチップであってよい。並列インターフェース2332は、図21および22に関して示され、かつ説明されたような並列インターフェースである。並列インターフェース2332とシステムオンチップ2331との間の相互作用は、図21に関してよりよく理解され得る。図23Aに示されるように、システムオンチップ2331および並列インターフェース2332はそれぞれ、NSDLを使用して記述される。] 図21 図23A
[0230] ID2320は、TS2310とC/B2330との間のインターフェースとして機能する。TS2310とID2320との間のインターフェースは、TS2310によってサポートされる任意のタイプのインターフェース(例えば、USBケーブルまたはTS2310によってサポートされ得る任意のその他のタイプのインターフェース)を使用して実装されることが可能である。ID2320とC/B2330との間のインターフェースは、C/B2330によってサポートされる任意のタイプのインターフェースとして実装されることが可能である。一実施形態では、ID2320は、データ信号および制御信号が、独立してTS2310からC/B2330に適用されることが可能なように、C/B2330に対して個別のデータインターフェースおよび制御インターフェースをサポートする。]
[0231] 本明細書で説明されるように、テストツール2312は、並列インターフェース2332(および、したがって、システムオンチップ2331)とのデータ交換を処理し、並列インターフェースドライバ2313は、並列インターフェース2332(および、したがって、システムオンチップ2331)とのプロトコル交換を処理する。すなわち、並列インターフェースドライバ2313は、テストツール2312が並列インターフェース2332とのプロトコル交換を管理しなければならないことを防ぐ。図23Aに示されるように、TS2310とC/B2330との間のデータ交換およびプロトコル交換は、ID2320によってサポートされる。] 図23A
[0232] 一実施形態では、並列インターフェースドライバ2313は、オペレーティングシステム2311によってサポートされた機能を使用して(例えば、バッファ、信号灯、メールボックスなど、ならびにそれらの様々な組合せを使用して)並列インターフェース2332とのプロトコル交換を処理する。この実施形態では、テストツール2312は、システムオンチップのJTAGポートを直接制御せず、むしろ、テストツール2312は、(例えば、ドライバによって宣言され、テストツール2312によってインポートされた機能を使用して)テストツール2312に様々な機能を提供するドライバと相互作用する。]
[0233] 図23Bは、図23Aの例示的なテスト環境内のデータフローのハイレベルブロック図を示す。図23Bに示されるように、データは(データフロー2351として示される)TS2310からC/B2330に、かつ(データフロー2352として示される)C/B2330からTS2310に流れる。データフロー2351において、データは、テストツール2312から並列インターフェースドライバ2313に、そこからインターフェースデバイス2320に、そこから並列インターフェース2332に、そこからシステムオンチップ2331に流れる。データフロー2352において、データは、システムオンチップ2331からテストツール2312に逆経路に沿って流れる。本明細書で説明されるように、データフローは、テスト環境2300の関連でだけ重要である。] 図23A 図23B
[0234] システムオンチップ2331のNSDLベースの記述は、対応する並列インターフェースに(例えば、インスタンスの作成時に)接続された1つまたは複数の並列ポートと(並列トランザクションに関するデータが格納される)1つまたは複数の並列スライスと、並列ポート上でトランザクションを開始するように適合された1つまたは複数の並列トランザクション機能とを含む。(1つまたは複数の)並列スライスは、特定の名前付け(例えば、「parallel_xxxx」)を使用して識別されることが可能である。並列トランザクション機能は、特定の名前付け(例えば、「send_parallel_data」および「get_parallel_data」)を使用して識別されることが可能である。例えば、並列トランザクション機能のプロトタイプは以下を含み得る。]
[0235] function send_parallel_data (sending_slice : in string)
return boolean;
function get_parallel_data (receiving_slice : in string)
return Boolean;]
[0236] 本明細書で説明される例示的な並列トランザクション機能は、並列ポート上の活動を広告し、さらに、直列テストビットストリームを制御するために、直列テストビットストリームに対する修正を示す。「並列スライス」の実装は、テストシステム(例示的に、TS2310のテストツール2312)にシステムオンチップの並列ポートと(本明細書において、システムオンチップの「コア」と呼ばれる)システムオンチップの残りの部分との間のデータフローの詳細について知らせる。システムオンチップの並列ポートとシステムオンチップのコアとの間の接続は、多くの様式で実装されることが可能である(その例は、図24〜27に関して示され、かつ説明される)。] 図24 図25 図26 図27
[0237] 図24は、並列ポートとシステムオンチップのコアとの間の例示的な接続のハイレベルブロック図を示す。図24に示されるように、例示的な接続は、完全に独立した(直列スキャンパスから独立した)並列ポートを利用する。詳細には、接続2400は、TAPポート2410と、並列アクセスをシステムオンチップ2430に提供している外部並列ポート2420とを含む。システムオンチップ2430は、TAPポート2410を経由して、または外部並列ポート2420を経由してアクセスされ得るコア2439を含む。] 図24
[0238] コア2439は、システムオンチップ2430の直列スキャンパス内の直列レジスタ2431を使用して、TAPポート2410を経由してアクセスされ得る。直列レジスタ2431は、第1のインターフェース2433を経由してコア2439に対するアクセスを制御する。コア2439は、システムオンチップ2430の直列スキャンパスの外部にある並列レジスタ2434を使用して、外部並列ポート2420を経由してアクセスされる。並列レジスタ2434は、第2のインターフェース2435を経由してコア2439に対するアクセスを制御する。]
[0239] 図24に示されるように、並列レジスタ2434を経由したコア2439に対するアクセスは、直列レジスタ2431から完全に独立している。したがって、すべての制御信号は、システムオンチップ2430の直列スキャンパスからの介入のいかなる必要も伴わずに、並列論理によって処理される。機能「get_parallel_data」は、並列スライス(例示的に、「parallel_reg」)の名前を引数として単に解釈し、ビットストリームに対する修正は求められないため、機能の本体は空である。] 図24
[0240] 図25は、並列ポートとシステムオンチップのコアとの間の例示的な接続のハイレベルブロック図を示す。図25に示されるように、例示的な接続は、直列制御を伴う独立した並列ポートを利用する。詳細には、接続2500は、TAPポート2510と、並列アクセスをシステムオンチップ2530に提供している外部並列ポート2520とを含む。システムオンチップ2530は、TAPポート2510を経由して、または外部並列ポート2520を経由してアクセスされ得るコア2539を含む。] 図25
[0241] コア2539は、システムオンチップ2530の直列スキャンパス内の直列レジスタ2531を使用して、TAPポート2510を経由してアクセスされる。直列レジスタ2531は、第1のインターフェース2533を経由してコア2539に対するアクセスを制御する。コア2539は、システムオンチップ2530の直列スキャンパスの外部にある並列レジスタ2534を使用して、外部並列ポート2520を経由してアクセスされる。並列レジスタ2534は、第2のインターフェース2535を経由して、コア2539に対するアクセスを制御する。]
[0242] 図25に示されるように、並列レジスタ2534および関連する第2のインターフェース2535を経由したコア2539に対するアクセスは、システムオンチップ2530の直列スキャンパス内の追加のイネーブルレジスタ2532を使用して制御される。イネーブルレジスタ2532は、イネーブルレジスタ2532からコア2539への制御インターフェース2537を使用して、並列レジスタ2534を経由してコア2539に対するアクセスを制御する。したがって、システムオンチップ2530の直列スキャンパスは、TDI→イネーブルレジスタ2532→直列レジスタ2531→TDOを含む。] 図25
[0243] したがって、図25に示されるように、並列レジスタ2534を経由したコア2539に対するアクセスは、システムオンチップ2530の直列スキャンパスから直列的に制御される。この実施形態では、機能「get_parallel_data」は、並列スライス(例示的に、「parallel_reg」)の名前を引数として解釈し、さらに、ビットストリームに対する修正が求められるため、機能の本体は、イネーブルレジスタ2532の値を所望される値に設定するための命令を含むことになる。] 図25
[0244] 図26は、並列ポートとシステムオンチップのコアとの間の例示的な接続のハイレベルブロック図を示す。図26に示されるように、例示的な接続は、直列データおよび並列データに関して、コアに対して共有アクセスポートを利用する。詳細には、接続2600は、TAPポート2610と、並列アクセスをシステムオンチップ2630に提供している外部並列ポート2620とを含む。システムオンチップ2630は、TAPポート2610を経由して、または外部並列ポート2620を経由してアクセスされ得るコア2639を含む。] 図26
[0245] コア2639は、システムオンチップ2630の直列スキャンパス内の直列レジスタ2631を使用して、TAPポート2610を経由してアクセスされる。直列レジスタ2631は、第1のインターフェース2633を経由してコア2639に対するアクセスを制御する。コア2639は、システムオンチップ2630の直列スキャンパスの外部にある並列レジスタ2634を使用して、外部並列ポート2620を経由してアクセスされる。並列レジスタ2634は、第2のインターフェース2635を経由して、コア2639に対するアクセスを制御する。]
[0246] 図26に示されるように、直列レジスタ2631および並列レジスタ2634を経由したコア2639に対するアクセスは、共有アクセスポート2636を使用して制御される。共有アクセス部分2636は、直列レジスタ2631からの第1のインターフェース2633を第1の入力として解釈して、並列レジスタ2634からの第2のインターフェース2635を第2の入力として解釈する。共有アクセスポート2636は、入力のうちの1つを選択して、共有アクセスインターフェース2638を経由して入力のうちの選択された1つをコア2639に提供する。] 図26
[0247] 図26に示されるように、共有アクセスポート2636によって入力のうちの1つを選択することは、システムオンチップ2630の直列スキャンパス内で追加のイネーブルレジスタ2632を使用して制御される。イネーブルレジスタ2632は、イネーブルレジスタ2632から共有アクセスポート2636への制御インターフェース2637を使用して、共有アクセスポート2636および共有アクセスインターフェース2638を経由して、コア2539に対するアクセスを制御する。したがって、システムオンチップ2630の直列スキャンパスは、TDI→ 直列レジスタ2631→イネーブルレジスタ2632→TDOを含む。] 図26
权利要求:

請求項1
複数の相互接続によって相互接続された複数の構成要素を有するシステムオンチップをテストする方法であって、前記システムオンチップのそれぞれの構成要素のアルゴリズム記述を受信するステップと、前記システムオンチップの前記構成要素同士の間の複数の相互接続のアルゴリズム記述を受信するステップと、前記構成要素の前記アルゴリズム記述および前記相互接続の前記アルゴリズム記述を含む、前記システムオンチップのアルゴリズム記述を受信するステップと前記システムオンチップの前記アルゴリズム記述を格納するステップとを含む方法。
請求項2
前記システムオンチップのそれぞれの構成要素に関して、前記構成要素の前記アルゴリズム記述が、前記構成要素に関する少なくとも1つのレジスタ値への、前記構成要素によってサポートされた、少なくとも1つの機能のそれぞれのマッピングを記述する、請求項1に記載の方法。
請求項3
前記システムオンチップのそれぞれの構成要素に関して、前記少なくとも1つの機能が、前記構成要素をテストする機能および前記構成要素に関する動作を実行する機能のうちの少なくとも1つを含む、請求項2に記載の方法。
請求項4
それぞれの構成要素に関して、前記構成要素の前記アルゴリズム記述が、前記構成要素の内部スキャンを記述する、請求項1に記載の方法。
請求項5
前記システムオンチップの前記アルゴリズム記述が、前記システムオンチップのトポロジの記述を含む、請求項1に記載の方法。
請求項6
前記システムオンチップの前記トポロジの前記記述が、前記システムオンチップのシステムスキャンパスの記述を含む、請求項5に記載の方法。
請求項7
前記システムスキャンパスの前記記述が、スキャンパス長情報およびスキャンパス階層情報を含む、請求項6に記載の方法。
請求項8
アルゴリズム記述が、テストツールによって理解されているように適合されたフォーマットで少なくとも1つの構成規則を含む、請求項1に記載の方法。
請求項9
システムオンチップの構成要素をテストする方法であって、前記構成要素が少なくとも1個のレジスタを含み、前記方法が、前記構成要素のアルゴリズム記述を受信するステップを含み、前記構成要素によってサポートされた少なくとも1つの機能のそれぞれに関して、前記アルゴリズム記述が、前記構成要素の前記少なくとも1個のレジスタに関する少なくとも1つのレジスタ値への前記機能のマッピングを定義し、そして、前記構成要素の前記アルゴリズム記述を格納するステップを含む方法。
請求項10
システムオンチップをテストする方法であって、前記システムオンチップのアルゴリズム記述を使用して、前記システムオンチップに関するテストビットストリームを決定するステップを含み、前記テストビットストリームが、入力ビットストリームと期待される出力ビットストリームとを含み、さらに、前記入力ビットストリームを前記システムオンチップの入力テストアクセスポートに適用するステップと、前記システムオンチップの出力テストアクセスポートから、実際の出力ビットストリームを補足するステップと、前記実際の出力ビットストリームと前記期待される出力ビットストリームとを使用して、テスト結果を決定するステップとを含む方法。
类似技术:
公开号 | 公开日 | 专利标题
Eles et al.2013|System synthesis with VHDL
US9251304B2|2016-02-02|Circuit design evaluation with compact multi-waveform representations
Huang et al.2012|Formal equivalence checking and design debugging
US6175946B1|2001-01-16|Method for automatically generating checkers for finding functional defects in a description of a circuit
US6292931B1|2001-09-18|RTL analysis tool
US6857110B1|2005-02-15|Design methodology for merging programmable logic into a custom IC
US6067650A|2000-05-23|Method and apparatus for performing partial unscan and near full scan within design for test applications
Navabi2011|Digital system test and testable design
US6434733B1|2002-08-13|System and method for high-level test planning for layout
US6295636B1|2001-09-25|RTL analysis for improved logic synthesis
US6826732B2|2004-11-30|Method, system and program product for utilizing a configuration database to configure a hardware digital system
US6205572B1|2001-03-20|Buffering tree analysis in mapped design
US6195776B1|2001-02-27|Method and system for transforming scan-based sequential circuits with multiple skewed capture events into combinational circuits for more efficient automatic test pattern generation
US9262303B2|2016-02-16|Automated semiconductor design flaw detection system
US6745160B1|2004-06-01|Verification of scheduling in the presence of loops using uninterpreted symbolic simulation
US7389490B2|2008-06-17|Method, system and program product for providing a configuration specification language supporting selective presentation of configuration entities
US7669155B2|2010-02-23|Generic methodology to support chip level integration of IP core instance constraints in integrated circuits
Kurup et al.2012|Logic synthesis using Synopsys®
US7055118B1|2006-05-30|Scan chain verification using symbolic simulation
US6378123B1|2002-04-23|Method of handling macro components in circuit design synthesis
US6539536B1|2003-03-25|Electronic design automation system and methods utilizing groups of multiple cells having loop-back connections for modeling port electrical characteristics
US8099271B2|2012-01-17|Design instrumentation circuitry
Marinissen et al.2002|On IEEE P1500’s standard for embedded core test
US7143376B1|2006-11-28|Method and apparatus for design verification with equivalency check
US7506286B2|2009-03-17|Method and system for debugging an electronic system
同族专利:
公开号 | 公开日
ES2374483T3|2012-02-17|
US7958479B2|2011-06-07|
US20090144594A1|2009-06-04|
KR20100084186A|2010-07-23|
CN101884031A|2010-11-10|
JP5188580B2|2013-04-24|
WO2009073120A1|2009-06-11|
EP2232373A1|2010-09-29|
KR101204138B1|2012-11-22|
EP2232373B1|2011-09-28|
CN101884031B|2013-07-24|
AT526629T|2011-10-15|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
JP2006517295A|2003-02-10|2006-07-20|コーニンクレッカフィリップスエレクトロニクスエヌヴィKoninklijkePhilipsElectronicsN.V.|集積回路の試験|
JP2007524947A|2004-02-17|2007-08-30|アンスティテュナシオナルポリテクニークドグレノーブル|集積回路のipコアのテスト手段のリモート制御を行うことができる通信手段を備える集積回路チップ|
US20050262465A1|2004-05-18|2005-11-24|Saket Goyal|Handling of unused coreware with embedded boundary scan chains to avoid the need of a boundary scan synthesis tool during custom instance creation|
US20060282729A1|2005-06-10|2006-12-14|Altera Corporation|Pipelined scan structures for testing embedded cores|
US20070094629A1|2005-10-20|2007-04-26|Agere Systems Inc.|Methods and Apparatus for Making Placement Sensitive Logic Modifications|
WO2007049171A1|2005-10-24|2007-05-03|Nxp B.V.|Ic testing methods and apparatus|
JP2009512872A|2005-10-24|2009-03-26|エヌエックスピービーヴィ|Icテスト方法及びその装置|JP2015111139A|2008-01-30|2015-06-18|アルカテル−ルーセント ユーエスエー インコーポレーテッド|システムオンチップのスキャンパスの部分を分離するための装置及び方法|US4872169A|1987-03-06|1989-10-03|Texas Instruments Incorporated|Hierarchical scan selection|
GB9622687D0|1996-10-31|1997-01-08|Sgs Thomson Microelectronics|An integrated circuit with tap controller|
US6708144B1|1997-01-27|2004-03-16|Unisys Corporation|Spreadsheet driven I/O buffer synthesis process|
US6606588B1|1997-03-14|2003-08-12|Interuniversitair Micro-Elecktronica Centrum |Design apparatus and a method for generating an implementable description of a digital system|
US6456961B1|1999-04-30|2002-09-24|Srinivas Patil|Method and apparatus for creating testable circuit designs having embedded cores|
US6430718B1|1999-08-30|2002-08-06|Cypress Semiconductor Corp.|Architecture, circuitry and method for testing one or more integrated circuits and/or receiving test information therefrom|
US6587981B1|1999-11-29|2003-07-01|Agilent Technologies, Inc.|Integrated circuit with scan test structure|
US7181705B2|2000-01-18|2007-02-20|Cadence Design Systems, Inc.|Hierarchical test circuit structure for chips with multiple circuit blocks|
US6631504B2|2000-01-18|2003-10-07|Cadence Design Systems, Inc|Hierarchical test circuit structure for chips with multiple circuit blocks|
US6665828B1|2000-09-19|2003-12-16|International Business Machines Corporation|Globally distributed scan blocks|
JP3955196B2|2001-09-05|2007-08-08|富士通株式会社|試験回路および半導体集積回路装置|
KR100430074B1|2002-01-08|2004-05-03|학교법인 한양학원|시스템칩 테스트 접근을 위한 랩드 코아 연결 모듈|
US6678875B2|2002-01-25|2004-01-13|Logicvision, Inc.|Self-contained embedded test design environment and environment setup utility|
US20040002832A1|2002-05-20|2004-01-01|Chan Patrick P.|Method and apparatus for boundary scan of serial interfaces|
US20050097416A1|2003-10-31|2005-05-05|Dominic Plunkett|Testing of integrated circuits using boundary scan|
KR100514319B1|2003-12-02|2005-09-13|조상욱|시스템 온 칩의 테스트를 위한 코아 접속 스위치|
US7356745B2|2004-02-06|2008-04-08|Texas Instruments Incorporated|IC with parallel scan paths and compare circuitry|
US7360133B2|2004-05-18|2008-04-15|Lsi Logic Corporation|Method for creating a JTAG tap controller in a slice for use during custom instance creation to avoid the need of a boundary scan synthesis tool|
JP4388903B2|2005-02-09|2009-12-24|富士通マイクロエレクトロニクス株式会社|Jtag試験方式|
US7949915B2|2007-12-04|2011-05-24|Alcatel-Lucent Usa Inc.|Method and apparatus for describing parallel access to a system-on-chip|
US7962885B2|2007-12-04|2011-06-14|Alcatel-Lucent Usa Inc.|Method and apparatus for describing components adapted for dynamically modifying a scan path for system-on-chip testing|
US7954022B2|2008-01-30|2011-05-31|Alcatel-Lucent Usa Inc.|Apparatus and method for controlling dynamic modification of a scan path|
US7958417B2|2008-01-30|2011-06-07|Alcatel-Lucent Usa Inc.|Apparatus and method for isolating portions of a scan path of a system-on-chip|US7949915B2|2007-12-04|2011-05-24|Alcatel-Lucent Usa Inc.|Method and apparatus for describing parallel access to a system-on-chip|
US7962885B2|2007-12-04|2011-06-14|Alcatel-Lucent Usa Inc.|Method and apparatus for describing components adapted for dynamically modifying a scan path for system-on-chip testing|
US7886263B1|2007-12-10|2011-02-08|Cadence Design Systems, Inc.|Testing to prescribe state capture by, and state retrieval from scan registers|
US7954022B2|2008-01-30|2011-05-31|Alcatel-Lucent Usa Inc.|Apparatus and method for controlling dynamic modification of a scan path|
CN103675576B|2012-09-18|2016-02-10|英业达科技有限公司|基于边界扫描的芯片连接测试系统及其方法|
US9316689B2|2014-04-18|2016-04-19|Breker Verification Systems|Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models|
US9727679B2|2014-12-20|2017-08-08|Intel Corporation|System on chip configuration metadata|
CN106932705A|2015-12-30|2017-07-07|深圳市中兴微电子技术有限公司|一种系统级封装多芯片互联测试方法及装置|
法律状态:
2012-07-11| RD04| Notification of resignation of power of attorney|Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120710 |
2012-09-05| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120904 |
2012-12-05| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121204 |
2012-12-20| TRDD| Decision of grant or rejection written|
2012-12-26| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121225 |
2013-01-31| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130122 |
2013-02-01| R150| Certificate of patent or registration of utility model|Ref document number: 5188580 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2013-02-01| FPAY| Renewal fee payment (event date is renewal date of database)|Free format text: PAYMENT UNTIL: 20160201 Year of fee payment: 3 |
2016-02-02| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2017-01-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-01-30| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2019-02-05| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2020-01-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2021-01-29| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2022-01-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]